Как написать структуру с вложенными рекурсивными данными в golang
У меня есть следующие данные
{
"cars": {
"toyota": [
"sedan",
"pickup"
],
"honda": [
"sedan",
"couple",
"pickup"
]
....
}
}
Список может и дальше расти. Я пытаюсь найти подходящую структуру для сервера данных и возврата к автору ответов HTTP.
структура, которая у меня была.
type Autos struct {
Cars struct {
Toyota []string `json:"toyota"`
Honda []string `json:"honda"`
} `json:"cars"`
}
Но приведенная выше структура предопределила "Тойота" "Хонда".
Я ищу способ использовать только одну или две структуры для представления структуры данных. Заранее спасибо.
1 ответ
Решение
Ты можешь сделать:
type Autos struct {
Cars map[string][]string `json:"cars"`
}
Вот полный рабочий пример, который печатает "купе":
package main
import (
"encoding/json"
)
type Autos struct {
Cars map[string][]string `json:"cars"`
}
func main() {
x := `{
"cars": {
"toyota": [
"sedan",
"pickup"
],
"honda": [
"sedan",
"coupe",
"pickup"
]
}
}`
var a Autos
err := json.Unmarshal([]byte(x), &a)
if err != nil {
panic(err)
}
println(a.Cars["honda"][1])
}