2016-07-05 8 views
1

以下のコードでJSONをうまくインデントできるようになりました。最初の出力のようなものを出力します。しかし、出力を配列で囲み、2番目の出力のように適切にインデントさせたいと思います。角かっこで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を1つの要素スライスにラップするだけです。スライスは、(角括弧を使用して)JSON配列にコードされます:

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

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

+0

おかげで、これは完全に働きました。さて私はそれにして、私の構造体にはnilかもしれないスライスがあります.jsonにマーシャリングされたときに '[]'としてnilをどのように表示するかについての提案はありますか? – ab11

関連する問題