如何在C#Newtonsoft中迭代纯JSON数组,如下所示?
[
78293270,
847744,
32816430
]
或,
["aa", "bb", "cc"]
我在SO上找到的所有现有答案都是KeyValuePair格式,而不是纯JSON数组格式。 THX。
JArray array = JsonConvert.DeserializeObject<JArray>(json);
foreach(JObject item in array)
{
// now what?
}
答案 0 :(得分:3)
使用Parse
的静态JArray
方法解析字符串。此方法从包含JSON的字符串返回JArray。请阅读here。
var jArray = JArray.Parse(arrStr);
foreach (var obj in jArray)
{
Console.WriteLine(obj);
}
您输入的简单程序,您可以在dotnetfiddle运行验证。
using System;
using Newtonsoft.Json.Linq;
public class Program
{
public static void Main()
{
var arrStr = "[78293270, 847744, 32816430]";
var jArray = JArray.Parse(arrStr);
foreach (var obj in jArray)
{
Console.WriteLine(obj);
}
var aStr = "[\"aa\", \"bb\", \"cc\"]";
var jArray1 = JArray.Parse(aStr);
foreach (var obj in jArray1)
{
Console.WriteLine(obj);
}
}
}
上述代码的输出是
78293270
847744
32816430
AA
BB
CC
答案 1 :(得分:0)
您的意思是“如何从迭代JObject
获取值?
foreach(var item in array) // var is JToken, can be cast to JObject
{
int number = item.Value<int>();
Console.WriteLine(number);
}