C# - 将 json 格式的数据解析为嵌套的哈希表

6 c# json hashtable

我正在尝试在 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"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我不知道会发生多少嵌套,而且从技术上讲,我不知道任何给定消息中将出现哪些名称/值对。

C# 中是否有任何受支持的机制可以让我轻松地将其解析为一组嵌套的 hastables?

我想做一些类似的事情(请注意,这段代码在语法上不是 100% 正确的,最好通过递归来完成……但它使这个想法变得清晰)。

Hashtable ht = [deserialize data method](jsonformattedstring);
foreach (Hashtable nested in ht)
{
    If (nested.count > 1)
        {
        Foreach (hashtable next in nested)
        …
        }
}
Run Code Online (Sandbox Code Playgroud)

jve*_*ema 4

我不喜欢 .Net Json 解析...它偶尔会做一些奇怪的事情。我已切换到Json.NET,一个开源库。它有一个很好的 JObject 对象,可以满足您的需要。