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

标签 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"
        }
    }
}

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

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

我想按照以下方式做一些事情(注意这段代码在语法上不是 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 对象,可以满足您的需要。

关于C# - 将 json 格式的数据解析为嵌套的哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/802766/

相关文章:

c# - 使用 Moq 验证事件注册

javascript - 如何生成回历的某个公历年份的日期

c# - 在C#中填充一个数组

c# - .NET 中的 LINQ to JSON

c - 如何使用内核哈希表 API?

c# MailMessage 对象问题

java - 如何将 json 数组从 recyclerView 传递到另一个 Activity

json - Newtonsoft 中的 JSON 空处理问题

java - 简单的哈希函数技术

java - 如何使用 HashTable 和 HashTable 中的键获取单选按钮 ID