【问题标题】:How can I navigate any JSON tree in c#?如何在 C# 中导航任何 JSON 树?
【发布时间】:2011-06-24 05:07:07
【问题描述】:

我需要导航 Json 结构,就像使用 XmlDocument 导航 XML 一样。

结构未知,需要遍历节点来解析一些数据。

这可能吗?
我知道我可以使用JavaScriptSerializer 将其反序列化为已知类型,但事实并非如此,因为我可以接收任何有效的 json。

我正在使用 .NET 3.5 (SP1),目前无法升级到 4.0。
我升级到 .NET 4.0 以使用动态类型(这是很棒的代码)

【问题讨论】:

  • Parse JSON in C# 的可能重复项
  • @Jason,这不是重复的,我特别声明我不知道结构,所以我无法将其反序列化为已知类型。
  • 对;链接的问题以 JSON.NET 为中心,而不是 JavaScriptSerializer。前者允许您步行并检查生成的结构,后者用于静态类型。

标签: c# json parsing .net-3.5


【解决方案1】:

阅读这篇文章:

它向您解释了一种将 JSON 解析为内部有字典的动态对象的方法。

那么,使用 LINQ 迭代字典会很好,不是吗?

--- 或者如果您使用的是 .NET 3.5... --- ;)

为什么不实现像“ToDictionary”这样的扩展方法?

您可以接收 JSON 文本,稍后使用正则表达式解析并将属性和值拆分到字典中,一切都使用建议的扩展方法完成。

它是如何工作的示例:

IDictionary<string, object> deserializedJson = jsonText.ToDictionary();

满足您的需求?

--- 再试一次(现在您有更多选择)! ---

在 CodePlex 上查看这个开源项目:

它具有 LINQ-to-JSON,因此您可以读取和写入 JSON。

【讨论】:

  • 我忘了说我使用的是 .NET 3.5(编辑:但我可以使用 JavaScriptConverter 的东西,我要试试)
  • 我非常喜欢你的第一个答案,所以我正在协商将应用程序迁移到 4.0,我会更新结果。
  • 谢谢。好吧,我会“取消”第一个,然后我会用一个很好的“或者你可以做到”进行编辑;)
猜你喜欢
  • 1970-01-01
  • 2016-10-22
  • 1970-01-01
  • 2010-10-14
  • 2013-12-21
  • 1970-01-01
  • 2017-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多