Перейти Unmarshal JSON, но не маршалировать вложенную структуру в виде строки - PullRequest
0 голосов
/ 24 апреля 2018

Учитывая следующий объект JSON:

{
"a": 1,
"b": [1,2,3,4]
}

И следующее type:

type Thing struct {
  A Int `json:"a"`
  B string `json:"b"
}

Я бы хотел, чтобы массив "b" оставался строкой JSON при маршалингев ход.

В настоящее время я получаю следующую ошибку:

panic: json: cannot unmarshal array into Go struct field Thing.b of type string

1 Ответ

0 голосов
/ 24 апреля 2018

Установите поле как json.RawMessage. Он будет храниться как есть, без интерпретации (то есть как "[1,2,3,4]"), как фрагмент байтов, который может быть преобразован в строку достаточно легко.

Если вам нужна строка напрямую, вам придется реализовать интерфейс json.Unmarshaler для вашего типа и выполнить преобразование самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...