Si vous avez la structure JSON suivante:Comment décoder JSON en fonction du type d'objet dans golang
[
{
"type": "home",
"name": "house #1",
... some number of properties for home #1
},
{
"type": "bike",
"name": "trek bike #1",
... some number of properties for bike #1
},
{
"type": "home",
"name": "house #2",
... some number of properties for home #2
}
]
Comment décodent-vous cela dans golang à un struct sans savoir ce que chaque type est jusqu'à ce que vous unmarshall l'objet. Il semble que vous deviez faire ceci unmarshalling deux fois. En outre, d'après ce que je peux dire, je devrais probablement utiliser RawMessage pour retarder le décodage. Mais je ne suis pas sûr à quoi cela ressemblerait.
Dire que je les avais struct suivants:
type HomeType struct {
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
Bathrooms string `json:"bathrooms,omitempty"`
... more properties that are unique to a home
}
type BikeType struct {
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
Tires string `json:"tires,omitempty"`
... more properties that are unique to a bike
}
deuxième question. Est-il possible de le faire en mode streaming? Pour quand ce tableau est vraiment grand?
Merci
S'il y a un champ « type », et tous les attributs sont des chaînes, pourquoi ne pas simplement unmarshal dans la carte '[] string [chaîne] '? – JimB
Imaginez les objets JSON ayant beaucoup de propriétés, y compris les sous-objets et les tableaux d'objets. – jordan2175