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

标签 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.

那么我如何访问其他内容并循环浏览里面的内容?

最佳答案

没关系..

我刚刚解决了它。

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

所以它现在是一个有效的 Json 对象,并且 foreach 的键值工作起来就像一个魅力..

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

万岁!

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

更好的解决方案...我是个十足的白痴...

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

这将为您提供一个完整的数组,其中包含可以自由循环的所有数据...太棒了。 :)

关于c# - .NET C#/Csharp 中的 JSON - 从对象中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7482822/

相关文章:

c# - 如何在新的 AppDomain 中运行 WPF 应用程序? ExecuteAssembly 失败

c# - 以编程方式添加一个上下文菜单,其 Click 处理程序知道哪个项目被右键单击

javascript - 加载本地 .json 文件时,jQuery $.when().done() 无法按预期使用 JSONP

javascript - 加快json加载

.net - Json.NET 的 JsonProperty 的 Converter 和 MemberConverter 属性的区别

c# - 统一: Reading and updating from large CSV file

c# - 如何在 C# 中使用 SqlCommand 读取每一行和值?

c# - 在 C# 应用程序中使用 PHP 引擎

c# - 在 C# 的接口(interface)内使用 'new' 关键字意味着什么?

.net - 是否有 API 调用来开始扫描硬件设备