Лучший способ определения типов для создания вложенных JSON - PullRequest
2 голосов
/ 09 марта 2020

Мне нужно создать следующий JSON вывод, используя Go.

{
  "id": "zx222",
  "links": {
    "main_entity": {
      "data": [{
        "type": "car",
        "id": "abc123"
      }]
    }
  }
}

Простым способом генерации вышеупомянутого JSON с помощью маршалинга будет использование следующих типов

type Element struct{
  Id    string      `json:"id"`
  Links LinksObject `json:"links"`
}

type LinksObject struct{
  MainEntity MainEntityObject `json:"main_entity"`
}

type MainEntityObject struct{
  Data []EntityDef `json:"data"`
}

type EntityDef struct{
  Type string `json:"type"`
  Id   string `json:"id"`
}

Есть ли лучший способ генерировать вышеприведенное JSON без определения каждая структура просто чтобы вложить структуру?

Добавление некоторых моих мыслей за вопрос. Исходный JSON имеет дополнительные вложенные уровни из-за того, как сообщения упакованы. Но они не обязательно имеют какое-либо значение, и определение их как типов данных только для декодирования / кодирования в JSON кажется ненужным.

1 Ответ

3 голосов
/ 10 марта 2020
type Element struct {
    ID    string `json:"id"`
    Links struct {
        MainEntity struct {
            Data []struct {
                Type string `json:"type"`
                ID   string `json:"id"`
            } `json:"data"`
        } `json:"main_entity"`
    } `json:"links"`
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...