Если вы имеете следующую структуру JSON:Как декодировать JSON в зависимости от типа объекта в 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
}
]
Как вы расшифровать это в Golang на структуру, не зная, что каждый тип, пока вы не маршализацию объекта. Похоже, вам нужно было бы сделать это дважды в два раза.
Кроме того, что я могу сказать, вероятно, я должен использовать RawMessage для задержки декодирования. Но я не уверен, как это будет выглядеть.
Скажем, у меня были следующие:
структур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
}
Второй вопрос. Возможно ли это сделать в потоковом режиме? Ибо когда этот массив действительно большой?
Благодаря
Если есть поле «типа», и все атрибуты являются строками, то почему бы не просто распаковать в '[] карта [строка] строки '? – JimB
Представьте объекты JSON, обладающие множеством свойств, включая под-объекты и массивы объектов. – jordan2175