JsonConvert.SerializeObject添加默认结果名称

时间:2014-07-14 08:41:00

标签: c# asp.net json web-services json.net

每当我尝试使用JsonConvert.SerializeObject序列化对象时,它会添加一个默认数组名称为" d"

        json = JsonConvert.SerializeObject(new
        {
            resultsets = new List<Result>()
                {
                    new Result { id = 1, value = "ABC", info = "ABC" },
                    new Result { id = 2, value = "JKL", info = "JKL" },
                    new Result { id = 3, value = "GSG", info = "DYU" }
                }
        });

        return json;

Json的回应是

{
   "d": "{"resultsets":[{"id":1,"value":"ABC","info":"ABC"},{"id":2,"value":"JKL","info":"JKL"},{"id":3,"value":"GSG","info":"DYU"}]}"
}

其中添加名为&#34; d&#34;

的额外数组

我想要简单的数组如下

{"resultsets":[{"id":1,"value":"ABC","info":"ABC"},{"id":2,"value":"JKL","info":"JKL"},{"id":3,"value":"GSG","info":"DYU"}]}

1 个答案:

答案 0 :(得分:1)

这是为了防止直接执行脚本:

假设您正在返回一个普通数组。以下不是有效的JS语句:

{"d": [1]}

而这是:

[1]

您可以在此处找到更多信息:

http://encosia.com/a-breaking-change-between-versions-of-aspnet-ajax/#comment-34045