这是我解析为JObject的JSON。我可以使用SelectToken
从下面获得ExternalRateId
的字符串数组吗?
到目前为止,我正在使用foreach()
循环并获得它们的列表,并将其转换为字符串。我们能用SelectToken()
更简单的方法解决这个问题吗。如果是,请告诉我最好的方法。
{
"RateCards": [
{
"ExternalRateCardId": "62283ab4",
"Rates": [
{
"ExternalRateId": "2a77db10",
}
],
"IsUpdate": false
},
{
"ExternalRateCardId": "f6878b23",
"Rates": [
{
"ExternalRateId": "2a739550",
}
],
"IsUpdate": false
},
{
"ExternalRateCardId": "3f51162c",
"Rates": [
{
"ExternalRateId": "2a751bf0",
}
],
"IsUpdate": false
}
]
}
您可以使用LINQ
List<string> externalRateIds = ((JArray)JObject.Parse(json)["RateCards"])
.SelectMany(x => x["Rates"].Select(x => (string)x["ExternalRateId"]))
.ToList();
或者如果你想要SelectToken 的奇怪语法
string[] externalRateIds = ((JArray)JObject.Parse(json).SelectToken("RateCards"))
.SelectMany(x => x.SelectToken("Rates")
.Select(x => x.SelectToken("ExternalRateId").Value<string>())
.ToArray();