【发布时间】:2018-07-03 12:50:34
【问题描述】:
我有这个 json 字符串:
[
[
{
"Antibiotic after diagnosis":[
"Azithromycin",
"Ciprofloxacin HCl",
"Ampicillin Sodium"
],
"City":[
"Tel Aviv",
"Jerusalem"
]
}
],
[
{
"Antibiotic after diagnosis":"Azithromycin",
"City":"Tel Aviv"
},
{
"Antibiotic after diagnosis":"Ciprofloxacin HCl",
"City":"Jerusalem"
}
]
]
我反序列化了这个字符串:
data = Newtonsoft.Json.JsonConvert.DeserializeObject<List<object>>("*json str*");
JParameters = data[0] as JArray;
Debug.Log(JParameters["Antibiotic after diagnosis"]);
但是当我运行代码时,它在线崩溃 (Debug.Log(JParameters["Antibiotic after diagnostic"]);) 并出现以下错误:
“ArgumentException:使用无效键值访问的 JArray 值:“诊断后的抗生素”。需要 Int32 数组索引。”
【问题讨论】:
-
JParameters = data[0] as JArray;-> 你有一个数组。 “诊断后的抗生素”是该数组中每个项目的属性,而不是数组的属性(数组本身不能具有属性),因此会出现错误。 -
你想收到什么? “诊断后抗生素”对每个对象的价值还是只是第一个?
-
@razerez 取决于你想要的结果......
-
仔细看,json 是一个包含 2 个参数的列表,第一个是列表字典,第二个是字典列表我想获取数据中第一项的值[0]->“诊断后抗生素”即“阿奇霉素”
-
JParameters[0]["Antibiotic after diagnostic"] 就是你想要的。你在数组中有另一个数组
标签: c# unity3d mono virtual-reality