【发布时间】:2018-02-20 05:04:19
【问题描述】:
尝试解析 JSON 响应时出错
try
{
var result = (new JavaScriptSerializer()).Deserialize<Rootobject>(jsonResponse);
}
catch(Exception ex){}
JSON 字符串
"[{\"ID\":1,\"Code\":null,\"Name\":\"Black\"},{\"ID\":1,\"Code\":null,\"Name\":\"Red\"},{\"ID\":1,\"Code\":\"blx\",\"Name\":\"Blue\"}]"
附上错误详情和准确 JSON 字符串的屏幕截图
我正在使用以下代码生成 JSON
public string JSONTest()
{
List<Color> colors = new List<Color>();
colors.Add(new Color() { ID = 1, Name = "Black" });
colors.Add(new Color() { ID = 1, Name = "Red" });
colors.Add(new Color() { ID = 1, Name = "Blue", Code = "blx" });
return JsonConvert.SerializeObject(colors);
}
【问题讨论】:
-
我也尝试过 Class1 而不是 RootObject 但同样的错误。(您可以在附加的屏幕截图中看到 Class1 和 RootObject 类。)我在jsonlint.com 中验证的 JSON 字符串是有效的。
-
你的 json 被编码了两次。
-
你需要修改你的json字符串为 { "Property1" : [ ] }
-
你展示的json可以序列化为
IEnumerable<Class1>(不是Rootobject) -
@StephenMuecke - {“无法将'System.String'类型的对象转换为'System.Collections.Generic.IEnumerable`1[Class1]'”}
标签: c# asp.net json asp.net-mvc jsonparser