在 Nancy 中序列化字典时出错

Error in serializing dictionary in Nancy

我有一条路线 returns 像这样的字典:

public class HomeModule : NancyModule
{
    public HomeModule()
    {
        Get["/"] = _ => new Dictionary<long, long> {{1, 2}, {3, 4}};
    }
}

当我调用它时,我收到状态为 200 的响应,但响应正文如下所示:

Unexpected 'E'

怎么了?

南希版本 1.4.3.

JSON 键必须是 string,所以字典应该是这种格式:

public class HomeModule : NancyModule
{
    public HomeModule()
    {
        Get["/"] = _ => new Dictionary<string, long> {{"1", 2}, {"3", 4}};
                                    // ^
    }
}

结果将是:

{
  "1": 2,
  "3": 4
}

您可以在模块中使用 IResponseFormatter 的扩展来解决此问题。

this.Response.AsJson(new Dictionary<int,int>{{2,4}});