我有一个JObject以类似的格式返回值,
{
"0": {
"OPTION_LIST_ID": 1,
"NAME": "listname",
},
"1": [
{
"OPTION_ID": 1,
"OPTION_LIST_ID": 1,
"KEY_VALUE": "value1",
"LABEL": "label1"
},
{
"OPTION_ID": 2,
"OPTION_LIST_ID": 1,
"KEY_VALUE": "value2",
"LABEL": "label2"
}
]
我希望能够循环遍历此列表并返回列表中的最后一个值,然后从输入的最后一个选项中访问KEY_VALUE,我真的很想知道如何实现这一点。
foreach (JObject content in jArray.Children<JObject>())
{
...
}
我有这个代码可以返回上面的内容,但我真的不知道如何尝试获取列表中的最后一个选项。
答案 0 :(得分:0)
使用JSON.net执行此操作(不使用循环遍历数组)的最简单方法可能是直接访问您的对象:
dynamic result = JsonConvert.DeserializeObject(yourJson);
var value2 = result["1"][1].KEY_VALUE; // property "1" -> object in array at index 1
// output: value2
但如果你真的想要循环我就这样做:
foreach (JToken property in result)
{
var arrays = property.Children<JArray>();
foreach (var array in arrays)
{
foreach (var item in array)
{
var val = item.Value<string>("KEY_VALUE");
Console.WriteLine(val);
}
}
}
// output: value1, value2