【发布时间】:2014-11-13 21:59:49
【问题描述】:
我刚刚开始使用 JSON,在阅读了几篇文章之后,我仍然不清楚我是在查看数组、列表还是只是一个对象。看起来像这样。
{
"list": [{
"fields": {
"id": "9222115557374550596",
...
},
},
{
"fields": {
"id": "9222115557374550597",
...
},
}],
"paging": {
"pageCurrent": 0,
"itemMin": 0,
"itemMax": 2,
"maxNextPages": 0,
"pageSize": 100
}
}
我想将它反序列化为一个类型的对象列表(或 IEnumerable),以便有一个 Id 属性(也许不是 all 必须将字段解析到对象中)。
当我尝试使用以下代码执行此操作时:
List<Some> somes = JsonConvert.DeserializeObject<List<Some>>(dataAbove);
class Some { public String Id { get; set; } }
我收到一条很长的错误消息,说我没有使用正确的类型和数组以及一堆其他让我感到困惑的东西。我是在正确的轨道上还是我完全迷路了?!
我知道它的根目录是 list。但是什么?!或者至少 - 我应该用谷歌搜索什么?!
无法将当前 JSON 对象(例如 {\"name\":\"value\"})反序列化为类型 'System.Collections.Generic.List`1[ScriveProxy.Template]',因为该类型需要 JSON 数组(例如 [1,2,3])以正确反序列化。\u000d\u000a要修复此错误,请将 JSON 更改为 JSON 数组(例如 [1,2,3])或更改反序列化类型以使其正常可以从 JSON 对象反序列化的 .NET 类型(例如,不是像整数这样的原始类型,不是像数组或列表这样的集合类型)。 JsonObjectAttribute 也可以添加到类型中,以强制它从 JSON 对象反序列化。\u000d\u000aPath 'list',第 1 行,第 8 位。"
不能是this one,因为外括号是花括号而不是方括号...
在this solution 中,我们最终得到一个对象,而不是数组,所以这也不是我的目标。
【问题讨论】:
标签: c# arrays json parsing json.net