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

解析动态json对象

施选
2023-03-14
问题内容

我如何解析这个json对象:

{
    "ports": {
        "0": {
            "3306": "3306"
        },
        "1": {
            "3307": "9908"
        }
    }
}

我可以有N个端口,每个端口的值始终是key:value对。

到目前为止,我已经尝试过了:

type Ports struct {
    Port map[string]string
}

有了这个我得到键(0,1),但值是空的。

我也尝试过这个:

type Ports struct {
    Port map[string]struct{
        Values map[string]string
    }
}

但也不行。

这就是我解码json对象的方式:

var requestBody Ports
decoder := json.NewDecoder(body)
err := decoder.Decode(&requestBody)

问题答案:

使用此类型:

type Ports struct {
    Ports map[string]map[string]string
}

游乐场的例子

笔记:

  • 字段名称非常匹配。我使用字段名称“ Ports”来匹配JSON文本中使用的名称。
  • Go类型在JSON中应具有相同级别的嵌套。一个结构和映射每个计数用于一个嵌套级别。第一次尝试没有足够的嵌套,第二次尝试具有太多的嵌套级别(带有“值”字段的结构)。


 类似资料:
  • 问题内容: 我有一个json对象是这样的: 我试图这样解析: 但是我不知道如何访问动态名称。我们如何解析这样的JSON -注意-Ya的 所有值都带有引号,例如:“ Yg&R_” 问题答案: 试试这个动态的JSON解析器

  • 问题内容: 我无法理解如何使用Visual .NET将JSON字符串解析为c#对象。任务很简单,但是我仍然迷路…我得到了这个字符串: 这是我尝试进行消毒的代码: 我不知道在’<’和’>’之间放置什么,从网上阅读的内容中,我必须为其创建一个新的类。另外,如何获得输出?一个例子会有所帮助! 问题答案: 创建一个可以反序列化您的JSON的新类,例如:

  • 因此,通过对Stackoverflow的研究,特别是本主题,我已经确定在一个正常工作的getter/setter设置中嵌入了一个JSON对象字典。当我调用API时,属性的传统getter/setter工作得很好,但这是因为我知道属性的名称。如何使其适用于名为的对象的未知属性,以及该对象的格式是什么()? API响应: 我的POJO: 如何设置getter/setter和正确的字典格式(看起来可能是

  • 问题内容: 我有动态JSON,下面是示例:http : //pastebin.com/QMWRZTrD 如何使用翻新解析? 我没有生成POJO类,因为我有诸如“ 5411”和“ 5412”之类的动态字段。 编辑 : 我通过使用Map来解决它,因为第一个值始终是整数,第二个是对象列表。 问题答案: 如果使用随机键,则可以用来序列化和反序列化。

  • 我使用flink动态分析json类型的数据,对keyby和给定的列求和,在我的mapFunction中,我将json转换为case类,但结果流没有在keyby函数中得到编译器,在线程“main”org.apache.flink.api.common.InvalidProgramException中得到错误。我的代码如下所示 我如何将json转换为case类或tuple?

  • 问题内容: 我收到的JSON对象为: 它打印: 但现在我无法读取其中的任何内容。我如何获得“电子邮件”字段? 谢谢 问题答案: 您应该按照以下方式进行操作: 如果我没错的话。