ASP.NET MVC - JSON.NET在我的键和值周围添加了转义引号

时间:2013-09-01 17:22:26

标签: asp.net-mvc json.net

我有一个MVC ApiController类,我试图返回JSON。

我在方法中使用Newtonsoft's JSON.NET序列化程序:

// GET api/packages/5
public string Get(int id)
{
    var Packages = new Dictionary<string, string>();
    Packages.Add("Package 1", "One");
    Packages.Add("Package 2", "Two");
    Packages.Add("Package 3", "Three");
    Packages.Add("Package 4", "Four");

    return JsonConvert.SerializeObject(Packages);
}

但是在浏览器中查看时,我看到了回复:

"{\"Package 1\":\"One\",\"Package 2\":\"Two\",\"Package 3\":\"Three\",\"Package 4\":\"Four\"}"

所有引号都已转义。这显然是我的客户无法读取的。谁能看到我在哪里错了? content-type将返回application/json(Chrome开发者工具中也会显示)。

1 个答案:

答案 0 :(得分:1)

有一种不使用JSON.NET的简单方法。

 public Dictionary<string, string> Get()
 {
        var packages = new Dictionary<string, string>
                           {
                               {"Package 1", "One"},
                               {"Package 2", "Two"},
                               {"Package 3", "Three"},
                               {"Package 4", "Four"}
                           };

        return packages;
 } 

IE中的结果是

{"Package 1":"One","Package 2":"Two","Package 3":"Three","Package 4":"Four"}