我可以使用SelectToken获取ExternalRateID的字符串数组吗



这是我解析为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();

相关内容

  • 没有找到相关文章

最新更新