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

덕분에,이 완벽했다. 글쎄, 우리 구조체에는 nil 일 가능성이있는 슬라이스가 있습니다. json으로 정렬 될 때 '[]'로 nil을 출력하는 방법에 대한 제안이 있습니까? – ab11

관련 문제