【发布时间】:2018-03-17 09:54:02
【问题描述】:
我需要从下面的 JSON 中获取值,例如如何在 Info 中索引 Id?
整个 JSON 由许多匹配项组成,这只是一个 ID 为 5aa891cd1e1422452e8b4567 的匹配项,这是一个匹配项的结构。
我尝试:
var jsonDATA = JObject.Parse(data);
foreach (var e in jsonDATA["events"]) {
//in this step, the result is JSON below
var id = e["info"]["id"];` // error: cannot access child value on newtonsoft json linq jproperty
}
有什么想法吗?
{"5aa891cd1e1422452e8b4567": {
"info": {
"id": "5aa891cd1e1422452e8b4567",
"event_id": "58911142245284567",
"name": "Santos Laguna vs Queretaro",
"sport": "Soccer",
"league": "Mexico Cup",
"period": "Finished",
"score": "1:0",
"status": "Live",
"start_time": "2018.03.14 03:06:53",
"state": 1017,
"state_name": "Fulltime",
"minute": 90,
"safe": false,
"safe2": false,
"blocked": false,
"stop": false
},
"stats": {
"home": {
"name": "Santos Laguna",
"color": "",
"position": "",
"on_target": "",
"off_target": "",
"attacks": "",
"dangerous_attacks": "",
"possession": "",
"goals": 1,
"corners": 5,
"yellowcards": 1,
"redcards": 0,
"throwins": 0,
"freekicks": 0,
"goalkicks": 0,
"penalties": 0,
"substitutions": 3,
"ht_result": 1
},
"away": {
"name": "Queretaro",
"color": "",
"position": "",
"on_target": "",
"off_target": "",
"attacks": "",
"dangerous_attacks": "",
"possession": "",
"goals": 0,
"corners": 8,
"yellowcards": 3,
"redcards": 1,
"throwins": 0,
"freekicks": 0,
"goalkicks": 0,
"penalties": 0,
"substitutions": 3,
"ht_result": 0
}
},
"odds": []
}}
【问题讨论】:
-
您的 json 数据不代表您的 javascript 所期望的 - 您是否显示了正确的 javascript/json 数据?
-
jsonDATA["events"]应该是jsonDATA["5aa891cd1e1422452e8b4567"],但它不是数组 -
@karlo 你能检查一下哪个子属性会引发错误吗?获取“信息”或“身份”时?
-
那么他必须这样做;
e["5aa891cd1e1422452e8b4567"]["info"]["id"]那个元素?数组中每个元素的第一个元素是Guid吗? -
@FrankNielsen 是的,第一个元素是 Guid,它是比赛 ID,我必须遍历比赛并获取有关比赛的信息和其他统计数据,我也尝试 var id = e[" 5aa891cd1e1422452e8b4567"]["Info"]["id"];,但我仍然有错误:无法访问 Newtonsoft.Json.Linq.JProperty 上的子值。'