我有以下数组:
{
"customizedData":[
{
"key":"SubscriptionId",
"value":"xxxxxxxxxxxxxxxx"
},
{
"key":"OfferId",
"value":"xxxxxxxxxxxxxx"
},
{
"key":"SubscriptionName",
"value":"DYNAMICS 365 BUSINESS CENTRAL TEAM MEMBER"
},
{
"key":"Quantity",
"value":"6"
},
{
"key":"Status",
"value":"Suspended"
},
{
"key":"PartnerOnRecord",
"value":"None"
}
]
}如何访问关键元素:
“键”:"SubscriptionName“
“价值”:“动态365业务中心团队成员”
目前我使用的是:(string)t["customizedData"][2]["value"]
有什么更好的方法吗?
发布于 2020-12-16 08:07:46
假设您使用的是Json.net,并且不想为它创建强类型,所以可以使用SelectToken与JSONPath
t.SelectToken("$.customizedData[?(@.key == 'SubscriptionName')].value").ToString();发布于 2020-12-16 13:04:02
如果您正在使用Newtonsoft.Json nuget,则可以使用助手函数来完成这一操作。首先使用var jo = JObject.Parse(jsonContent);解析并传递给助手函数GetValueFromJson(jo, "SubscriptionName", "customizedData"),使用这个助手函数:
private string GetValueFromJson(JObject jo, string key, string rootKey)
{
var value = jo[rootKey].Children()
.Where(i => i["key"].ToString() == key)
.Select(i => i["value"].ToString())
.FirstOrDefault();
return value;
}https://stackoverflow.com/questions/65304471
复制相似问题