C#Newtonsoft中的JSON Array Iteratiion

时间:2018-04-27 18:24:55

标签: c# arrays json json.net

如何在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?
}

2 个答案:

答案 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

Dotnet Fiddle program

答案 1 :(得分:0)

您的意思是“如何从迭代JObject获取值?

foreach(var item in array) // var is JToken, can be cast to JObject
{
    int number = item.Value<int>();
    Console.WriteLine(number);
}