如何用括号漂亮地打印JSON?

如何用括号漂亮地打印JSON?,json,go,Json,Go,我能够用下面的代码很好地缩进我的JSON,它打印出类似于第一次输出的内容。但我希望输出用数组括起来,并适当缩进,就像在第二个输出中一样 j, err := json.MarshalIndent(x, "", " ") if err != nil { fmt.Println(err) } else { fmt.Println(string(j)) } { "A" : "x", "B" : "y", "C" : [ {

我能够用下面的代码很好地缩进我的JSON,它打印出类似于第一次输出的内容。但我希望输出用数组括起来,并适当缩进,就像在第二个输出中一样

j, err := json.MarshalIndent(x, "", "  ")
if err != nil {
    fmt.Println(err)
} else {
    fmt.Println(string(j))
}

{
    "A" : "x",
    "B" : "y",
    "C" : [
        { 
            "A" ...
        }
    ]
}
像这样

[
    {
        "A" : "x",
        "B" : "y",
        "C" : [
           { 
              "A" ...
           }

        ]
    }
]

只需将变量
x
包装在单个元素片中。切片被编码为JSON数组(使用方括号):


谢谢,这非常有效。好的,我们已经开始了,我的结构中有一个片段可能是nil,关于如何在封送到json时将nil打印为“[]”有什么建议吗?
j, err := json.MarshalIndent([]interface{}{x}, "", "  ")