Я пытаюсь посмотреть, есть ли способ (простой способ) добавить заголовок к каждому массиву в JSON, используя encoding/json
с GO.
Что я имею в виду?
Хотитечтобы получить что-то вроде этого:
{
"Dog":[
{
"breed":"Chihuahua",
"color":"brown"
},
{
"breed":"Pug",
"color":"white"
}
],
"Cat":[
{
"breed":"British",
"color":"white"
},
"breed":"Ragdoll",
"color":"gray"
}
]
}
Основная идея состоит в том, чтобы в этом случае иметь "категорию" Dog
и Cat
.
У меня уже есть это решение, но я 'Я ищу что-то, что может улучшить это.
Мой код выглядит так:
type Dog struct {
Breed string
Color string
}
type Cat struct {
Breed string
Color string
}
func main(){
dogs := [...]Dog{
{"Chihuahua", "brown"},
{"Pug", "white"},
}
cats := [...]Cat{
{"British", "white"},
{"Ragdoll", "gray"},
}
c, err := json.MarshalIndent(cats, "", "\t")
if err != nil {
log.Fatal(err)
}
d, err := json.MarshalIndent(dogs, "", "\t")
if err != nil {
log.Fatal(err)
}
fmt.Println("{")
fmt.Printf(" \"Dog\": %v,\n", string(d))
fmt.Printf(" \"Cat\": %v\n}", string(c))
}
Основная идея состоит в том, чтобы "Dog" и "Cat" были в качестве нового массива, но я хочуулучшить мой код, чтобы он не был «жестко закодирован» так, чтобы он выглядел так, как должно быть, мне интересно, есть ли простой способ добавить заголовок «Dog» и все значения массива, добавить заголовок «Cat» и всезначения массива.