【问题标题】:JsonConvert.SerializeObject adds default Result nameJsonConvert.SerializeObject 添加默认结果名称
【发布时间】:2014-07-14 08:41:00
【问题描述】:

每当我尝试使用 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"}]}"
}

在哪里添加了名为“d”的额外数组

我想要简单的数组如下

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

【问题讨论】:

  • 完整方法如下code [WebMethod] public static string GetHelloword() { string json; json = JsonConvert.SerializeObject(new { resultsets = new List() { new Result { id = 1, value = "ABC", info = "ABC" }, new Result { id = 2, value = "JKL" , info = "JKL" }, 新结果 { id = 3, value = "GSG", info = "DYU" } } });返回 json; }
  • 看看下面的链接它有效,也许你错过了你的问题? dotnetfiddle.net/ma2Ygq

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


【解决方案1】:

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

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

{"d": [1]}

而这是:

[1]

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 2014-08-15
    相关资源
    最近更新 更多