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

时间:2011-09-20 09:17:35

标签: c# .net json

我想解析一些JSON数据。我正在使用James Newton-King's JSON.NET library

我将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
  }
}
]
}

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

JObject o = JObject.Parse(jsonString);

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

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

KEY: root
VALUE: the other stuff.

那么我如何找到其他内容并循环浏览内部的内容呢?

1 个答案:

答案 0 :(得分:5)

没关系..

我刚解决了。

我删除了尾随[和结尾]。

所以它现在是一个有效的Json对象,而关键值foreach就像一个魅力......

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

乌拉!

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

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

保留所有内容,只需使用JArray ja = JArray.Parse(stringOfJson);

即可

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