2016-07-05 68 views
1

我能够很好地缩进我的JSON与下面的代码,它打印像第一个输出。但是我希望输出被一个数组括起来并且像第二个输出一样正确缩进。如何用括号漂亮地打印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" ... 
      } 

     ] 
    } 
] 

回答

1

只是将您的变量x包装在单个元素切片中。切片被编码成JSON阵列(其使用方括号):

j, err := json.MarshalIndent([]interface{}{x}, "", " ") 

https://play.golang.org/p/Q9kqTdwoO6

+0

感谢,这完美地工作。那么我们在这里,我的结构有一个可能是零的分片,关于如何在编组为json时将nil打印为'[]'的任何建议? – ab11