在Nancy中序列化字典时出错

时间:2016-09-04 13:29:24

标签: nancy

我有一条返回如下字典的路线:

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

当我打电话给它时,我收到状态为200的回复,但回复正文如下:

Unexpected 'E'

有什么问题?

南希版本1.4.3。

2 个答案:

答案 0 :(得分:1)

JSON键必须是 string ,因此字典应采用以下格式:

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

结果将是:

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

答案 1 :(得分:0)

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

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