Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将结构转换为json数组而不是json对象_Json_Go - Fatal编程技术网

将结构转换为json数组而不是json对象

将结构转换为json数组而不是json对象,json,go,Json,Go,如果这个问题被认为太简单或其他什么,我会提前道歉;这是我第一次用围棋写东西。对于这个问题,我简化了两个结构 type A struct { Content string } type B struct { Element A `json:"0"` Children []B `json:"1"` } 我想将类型B的值编码为JSON,但它应该返回一个JSON数组,而不是返回一个对象 例如: 我得到的是: [ { "0":{

如果这个问题被认为太简单或其他什么,我会提前道歉;这是我第一次用围棋写东西。对于这个问题,我简化了两个结构

type A struct {
    Content string
}

type B struct {
    Element A `json:"0"`
    Children []B `json:"1"`
}
我想将类型B的值编码为JSON,但它应该返回一个JSON数组,而不是返回一个对象

例如:

我得到的是:

[
    {
        "0":{
            "Content":"AAA"
        },
        "1":[
            {
                "0":{
                    "Content":"BBB"
                },
                "1":[
                    {
                        "0":{
                            "Content":"CCC"
                        },
                        "1":[]
                    },
                    {
                        "0":{
                            "Content":"DDD"
                        },
                        "1":[]
                    }
                }
            ]
        ]
    }
]
我需要的是:

[
    {"Content": "AAA"}, 
    [
        [
            {"Content": "BBB"},
            [
                {"Content": "CCC"}, 
                []
            ]
        ], 
        [
            {"Content": "DDD"}, 
            []
        ]
    ]
]

我可以通过手动迭代来实现这一点,但我希望有一种集成的方法来实现这一点

我认为您需要一个接口片来将a和B结构封装到一个片中


请看一下我在这里的代码片段

您可以通过在B中实现接口来实现

例如:

结果:

[
  {
    "Content": "AAA"
  },
  [
    [
      {
        "Content": "BBB"
      },
      [
        [
          {
            "Content": "CCC"
          },
          []
        ],
        [
          {
            "Content": "DDD"
          },
          []
        ]
      ]
    ]
  ]
]

请使用换行符和缩进设置JSON字符串的格式。目前它还不可读,很难理解其中的区别。没有。Go结构等同于JSON对象,而不是JSON数组。您可以使用自定义解组器自己完成。
[
  {
    "Content": "AAA"
  },
  [
    [
      {
        "Content": "BBB"
      },
      [
        [
          {
            "Content": "CCC"
          },
          []
        ],
        [
          {
            "Content": "DDD"
          },
          []
        ]
      ]
    ]
  ]
]