c# - 如何按键获取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 数组索引。”
解决方案
错误状态的索引JParameters
应该是整数。你想要的是:
JParameters[0]["Antibiotic after diagnosis"]
上面的代码选择第一个元素,然后选择字典键“Antibiotic after diagnostic”的值。
我建议阅读w3schools JSON以正确理解 JSON 的工作原理。
推荐阅读
- google-maps - 谷歌地图距离矩阵单位未正确显示
- c# - System.FormatException: '反序列化属性时发生错误。在 mongoDB.Driver C# 的帮助下使用聚合函数
- sql - 使用生成的系列填充列
- python - 涉及 Enum 的多重继承元类冲突
- heroku-postgres - 连接尝试失败。尝试连接到 Heroku PostgreSQL 时
- amazon-web-services - 在 AWS 上部署 Airflow 的最佳解决方案是什么?
- kotlin - 序列化地图
> - vue.js - 使用 v-if 语句后没有出现 Div
- css - 如何在 ReactJs 中使用 react-stack-cards 创建水平和垂直动画滑块?
- python - 如何解决:“FitFailedWarning:估计器拟合失败。这些参数的训练测试分区上的分数将设置为 nan?”