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

спасибо, это работает отлично. Ну, мы в этом, у моей структуры есть кусочек в ней, который может быть нулевым, любые предложения о том, как печатать нуль как «[]» при маршалировании к json? – ab11

Смежные вопросы