2016-07-05 23 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