我正在尝试使用C#处理一些json格式的数据,但是在确定解决该问题的正确方法时遇到了一些问题。我的问题是json格式的数据将采用未知格式(我知道听起来很奇怪,请继续阅读)。基本上,json格式的数据将是名称/值对的一些集合,其中值可能是也可能不是嵌套的名称/值对的数组。为了使事情变得更加有趣,名称/值对数组的嵌套可以在无限时继续进行。
例如:我可能有一些看起来像……的数据。
{ "1": { "1.1": { "1.1.1": "value1", "1.1.2": "value2", "1.1.3": "value3" }, "1.2": "value4", "1.3": { "1.3.1": { "1.3.1.1": "value5", "1.3.1.2": "value6" }, "1.3.1.2": "value7", "1.3.1.3": "value8" } } }
不幸的是,我不知道会发生多少嵌套,从技术上讲,我也不知道任何给定消息中将出现哪些名称/值对。
C#中是否有任何受支持的机制可以使我轻松地将其解析为一组嵌套的hastables?
我想做一些类似的事情(请注意,这段代码在语法上不是100%正确的,最好通过递归来完成…但这可以理解所有想法)。
Hashtable ht = [deserialize data method](jsonformattedstring); foreach (Hashtable nested in ht) { If (nested.count > 1) { Foreach (hashtable next in nested) … } }
我不喜欢.Net Json解析…它偶尔会做一些奇怪的事情。我已切换到开放源码库Json.NET。它有一个不错的JObject对象,可以满足您的需求。