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

未知密钥无法解组嵌套json

鞠安民
2023-03-14
问题内容

我在将以下格式的json数据解组到结构时遇到麻烦。json的结构对我来说有点令人困惑,因此我为解组它所做的所有愚蠢的事情表示歉意。

{
  "message": {
    "Server1.example.com": [
      {
        "application": "Apache", 
        "host": {
          "name": "/^Server-[13456]/"
        }, 
        "owner": "User1", 
        "project": "Web", 
        "subowner": "User2"
      }
    ], 
    "Server2.example.com": [
      {
        "application": "Mysql", 
        "host": {
          "name": "/^Server[23456]/"
        }, 
        "owner": "User2", 
        "project": "DB", 
        "subowner": "User3"
      }
    ] 
  }, 
  "response_ms": 659, 
  "success": true
}

我正在尝试使用以下结构将其解组。

type ServerDetails struct  {
  Message  struct{
    Hostname struct{
      Details struct{
        Application string `json:"application"`
        }`json:"-"`
       }`json:"-"`
     }`json:"message"`
}

这些字段Server[0-9].example.com在生成时将是未知的,并且会发生变化,并且存在此字段

      {
    "application": "Apache", 
    "host": {
      "name": "/^Server-[13456]/"
    },

在没有外部密钥的服务器名称之后,这再次让我感到困惑。我尝试了很多组合以了解如何将其解组,但是我失败了。

什么是使json字段解组为结构的有效方法?


问题答案:

您可以包括map [string] ServerStruct来满足您的要求。

您的结构可能如下所示:

type YourStruct struct {
    Success bool
    ResponseMS int
    Servers map[string]*ServerStruct
}

type ServerStruct struct {
    Application string
    Owner string
    [...]
}

使用一些其他json标签,您将能够解析json。



 类似资料:
  • 问题内容: 我在这里分叉了一个很棒的项目,并且刚刚学习了一些东西,就把它弄乱了。我不知道的问题是有关自定义编组的一些问题,如果您在这里看到,您可以看到它解组了包含一个字段的结构,然后使用该字段将其解组。除了嵌套的情况,这一切都很好。因此,最好的例子是: 只需说您有一个善意的结构是a ,那么就可以将其编组。然后具有3个保留在字段中的类型。这些孩子最终成为我的问题类型。我如何才能解决嵌套数据的问题?这

  • 问题内容: 我无法在通过API 接收的Golang结构中强制转换以下内容: 使用,他给我以下结构: 显然,我无法对每种货币对都会改变的原因进行硬编码。 我已经创建了两个结构来完成任务,但是无法将结果强制转换为结构。 我的第一个尝试是使用反射。阅读上面发布的JSON数据,我能够检索包含和列表的接口。 下面的两个打印将显示以下类型的事实,由于类型的事实,我无法投射以下类似的数据: 但是我无法解组数据。

  • 我无法将以下格式的json数据解组为结构。json的结构对我来说看起来有点混乱,所以为我为散集它所做的所有愚蠢的事情道歉。 我试图使用下面的结构来解组它。 字段在生成时将是未知的,并且会发生变化,并且有这个字段 就在服务器名称后面,它的外部没有密钥,这再次让我感到困惑。我尝试了大量的组合,以了解这是如何解组的,但我失败了。 将 json 字段解封组到结构中的工作方法是什么?

  • 在我的笔记本电脑(MSI GE63VR 7RE)上,按下空格键(和其他一些键)时,GLFW将GLFW_KEY_传递给键回调函数未知的键。 几乎所有的钥匙都有扫描码,但这些钥匙应该是特定于机器的,没有方便的方法将它们映射到正确的钥匙名称。 为什么GLFW不能识别我的空间密钥GLFW_KEY_SPACE,解决这个问题的最佳方法是什么? 我在arch linux与wayland和我使用glfw-wayl

  • 我正在尝试用动态字段键将json解组到json从storcli utility for linux返回的结构。一部分代码运行良好,但是如果json数据包含许多结构,我就不能解组它。我认为这是因为DriveDetailedInformation结构没有所有的json标签。有人能帮我吗?