当前位置: 首页 > 面试题库 >

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

苏坚成
2023-03-14
问题内容

我正在尝试使用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对象,可以满足您的需求。



 类似资料:
  • 问题内容: 此JSON输出来自MongoDB聚合查询。我本质上需要将嵌套数据JSON解析为以下’ 和值。 我尝试了5种不同的技术来从中获得所需的信息,但是使用和模块却遇到了问题。 理想情况下,输出将是这样的: 问题答案: 注意:来自MongoDB的JSON响应实际上无效。JSON需要双引号(),而不是单引号()。 我不确定为什么您的响应中有单引号而不是双引号,但是从其外观上,您可以替换它们,然后只

  • 本文向大家介绍C++中rapidjson将嵌套map转为嵌套json的讲解,包括了C++中rapidjson将嵌套map转为嵌套json的讲解的使用技巧和注意事项,需要的朋友参考一下 rapidjson将嵌套map转为嵌套json------人生苦短,我用rapidjson 看代码: 结果: {"code":0,"score":80,"name":"taoge","place":"shenzhen

  • 问题内容: 我有一堆嵌套数据,其格式类似于JSON: 有许多不同的参数具有不同的深度级别-这只是一个很小的子集。 还可能值得注意的是,当创建新的子数组时,总是有一个等号,后跟一个换行符,然后是一个空心括号(如上所示)。 是否有任何简单的循环或递归技术将此数据转换为系统友好的数据格式,例如数组或JSON?我想避免对属性名称进行硬编码。我正在寻找可以在Python,Java或PHP中使用的东西。伪代码

  • 问题内容: 我正在尝试使用具有以下结构的Java中的gson解析一些JSON数据,但是通过在线查看示例,我找不到任何能完成此工作的东西。 有人可以协助吗? 问题答案: 您只需要创建一个Java类结构即可表示JSON中的数据。为了做到这一点,我建议您将JSON复制到此在线JSON Viewer中 ,您会发现JSON的结构更加清晰… 基本上,您需要这些类(伪代码): 请注意,您的类中的属性名称必须与J

  • 问题内容: 我正在尝试通过Powershell动态解析和构建一些我将要提供的传入JSON文件的数据结构(将采用非标准结构),然后处理这些文件中的数据并交给他们转到下一步。 作为其中的一部分,我正在尝试将JSON文件的数据结构构建为实质上的数据路径列表,以便我解析并从中获取数据,以便可以处理嵌套JSON的数组。对象等。到目前为止,一切都很好。 我遇到某种Powershell特性的地方是通过变量处理2

  • 问题内容: 因此,可以说JSON响应为: 当您必须首先访问数据时,如何获得值“ value1”和“ value2”? 如果字段位于根目录,那么我可以让该方法返回带有这些字段名称的POJO。 我基本上希望下面的工作。 问题答案: 您可以尝试以下代码,使用Gson库将json字符串转换为具有必填字段的Pojo对象。 或者,您可以定义嵌套的Pojo类来解析它。 编辑:尝试下面的代码以使用Retrofit