.NET C#/ Csharp中的JSON - 从对象中获取值

Han*_*bal 2 .net c# json

我想解析一些JSON数据.我正在使用James Newton-King的JSON.NET库.

我将JSON字符串解析为JObject.这是我正在解析的JSON:

"root": [
{
  "date": 1325400000000,
  "id": 12313131,
  "loc": "en_us",
  "name": "New York, NY",
  "products": [
    {
      "@type": "asdf",
      "city": "New York - Penn Station, NY (NYP)",
      "code": "USA",
    }
  ],
  "summary": {
    "alert": [],
    "end": 1325577000000,
    "start": 1325400000000
  }
}
]
}
Run Code Online (Sandbox Code Playgroud)

你可以看到它非常复杂."root"是必要的,因为其他数据无法解析为JObject实例.

JObject o = JObject.Parse(jsonString);
Run Code Online (Sandbox Code Playgroud)

JSON数据非常大.其中有多个项目具有不同的ID.我想找一个具有特定ID的项目.

问题是,当我试图通过数据进行预测时,它只有一个元素.

KEY: root
VALUE: the other stuff.
Run Code Online (Sandbox Code Playgroud)

那么我如何得到其他东西并循环通过内部的东西?

Han*_*bal 5

没关系..

我刚刚解决了

我删除了尾随[和结束].

所以它现在是一个有效的Json对象,而Key Value就像一个魅力......

            foreach (KeyValuePair<String, JToken> d in o)
            {
                Console.WriteLine(String.Format("Key: {0}; Value: {1}", d.Key, d.Value));
            }
Run Code Online (Sandbox Code Playgroud)

欢呼!

原来这只是一个部分解决方案.因为现在其他人没有格式化,只有第一段是.其他人莫名其妙地消失了......:该死的......

更好的解决方案......我是一个完全白痴......

把一切都留在原地并简单地使用 JArray ja = JArray.Parse(stringOfJson);

这将为您提供一个完整的数组,所有数据都可以自由循环...真棒.:)