如果您有以下JSON结构:
[
{
"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
}
第二个问题。可以在流模式下执行此操作吗?因为当这个数组真的很大时?
谢谢
如果要操纵对象,则必须知道它们是什么类型。但是,如果您只想将它们传递给:例如:如果您从db获得一些大对象,只是将其传递给客户端,您可以使用空的interface{}
类型:
type HomeType struct {
Name interface{} `json:"name,omitempty"`
Description interface{} `json:"description,omitempty"`
Bathrooms interface{} `json:"bathrooms,omitempty"`
... more properties that are unique to a home
}
type BikeType struct {
Name interface{} `json:"name,omitempty"`
Description interface{} `json:"description,omitempty"`
Tires interface{} `json:"tires,omitempty"`
... more properties that are unique to a bike
}
在此处阅读有关空接口的更多信息-Link
希望这就是您的想法