C# Newtonsoft 中的 JSON 数组迭代

xpt*_*xpt 5 c# arrays json json.net

如何在 C# Newtonsoft 中像下面这样遍历纯 JSON 数组?

[
  78293270,
  847744,
  32816430
]
Run Code Online (Sandbox Code Playgroud)

或者,

["aa", "bb", "cc"]
Run Code Online (Sandbox Code Playgroud)

我在 SO 上找到的所有现有答案都是 KeyValuePair 格式,而不是这种纯 JSON 数组格式。谢谢。

JArray array = JsonConvert.DeserializeObject<JArray>(json);

foreach(JObject item in array)
{
    // now what?
}
Run Code Online (Sandbox Code Playgroud)

use*_*994 3

Parse使用的静态方法解析字符串JArray。此方法从包含 JSON 的字符串返回 JArray。请阅读此处。

var jArray = JArray.Parse(arrStr);
        
        foreach (var obj in jArray)
        {
            Console.WriteLine(obj); 
        }
Run Code Online (Sandbox Code Playgroud)

一个用于输入的简单程序,您可以运行该程序来在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); 
    }
    
}
}
    
Run Code Online (Sandbox Code Playgroud)

上面代码的输出是

78293270

847744

32816430

啊

BB

抄送

Dotnet Fiddle 程序