我有这个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 [“诊断后抗生素”]);)上崩溃,并显示以下错误:
“ ArgumentException:使用无效键值访问的JArray值:“诊断后使用抗生素”。预期为Int32数组索引。”
答案 0 :(得分:1)
services.AddIdentityCore<ApplicationUser>(o =>
{
// Identity config
})
.AddSignInManager()
.AddDefaultTokenProviders()
.AddEntityFrameworkStores<YourContext>();
services.ConfigureApplicationCookie(o =>
{
o.LoginPath = "/signin";
o.LogoutPath = "/signout";
o.AccessDeniedPath = "/signin";
o.ReturnUrlParameter = "returnUrl";
});
的索引应为整数,因为错误状态如此。您想要的是:
JParameters
上面的代码选择第一个元素,然后为字典键“诊断后抗生素”选择值。
我建议阅读w3schools JSON以正确理解JSON的工作原理。
答案 1 :(得分:1)
一种选择是从Jproperty获取密钥,值。
var files = JArray.Parse(YourJSON);
foreach (JArray item in files.Children())
{
foreach (JObject obj in item.Children())
{
foreach (JProperty prop in obj.Children())
{
string key = prop.Name.ToString();
string value = prop.Value.ToString();
}
}
}