一尘不染

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

json

我正在尝试使用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)
        …
        }
}

阅读 262

收藏
2020-07-27

共1个答案

一尘不染

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

2020-07-27