在 C# 中循环一个 SimpleJSON 数组

Loop over a SimpleJSON array in C#

我有一个从我的网络服务器获取 JSON 的 Unity 项目。

[
  {
    name: "foo",
    start: 1,
  },
  {
    name: "bar",
    start: 5,
  },
  {
    name: "baz",
    start: 10,
  },
]

我正在用 SimpleJSON

解析 JSON 字符串
  var res = JSON.Parse(www.downloadHandler.text);

我访问单个数组元素没有问题。

Debug.Log(res[0]["name"].Value);
// logs "foo"

Debug.Log(res[1]["start"].AsInt);
// logs 5

但我不知道如何遍历每个对象并访问其属性。 (我的真实数据在数组中有3个以上的对象)。

   foreach (var item in res) {
        string name = item["name"].Value;
   }

报错:

CS0021:无法将带有 [] 的索引应用于 'KeyValuePair<string, JSONNode>'

类型的表达式

这在 javascript 中是微不足道的,为什么在 C# 中如此困难?我被困了一整天,我确定我错过了一些简单的东西。

试试这个

for (int i = 0; i< res.Count; i++)  //or res.Count()
{ 
   var name res[i]["name"].Value;
....your code
}

你也可以用这个:

foreach( KeyValuePair<string, JSONNode> entry in res)
{
    // do something with entry.Value or entry.Key
}

但第一种方式更简单