首页 > 解决方案 > 如何按键获取JArray字典的值

问题描述

我有这个 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 数组索引。”

标签: c#unity3dmonovirtual-reality

解决方案


错误状态的索引JParameters应该是整数。你想要的是:
JParameters[0]["Antibiotic after diagnosis"]

上面的代码选择第一个元素,然后选择字典键“Antibiotic after diagnostic”的值。

我建议阅读w3schools JSON以正确理解 JSON 的工作原理。


推荐阅读