说我希望能够处理json
以下形式的nested和unnested ,如本例所示:
source_json_1 := `{"owner": "John", "nickname": "Rose", "species": "Dog"}`
source_json_2 := `{"owner": "Doe", "Pet": [{"nickname": "Rose", "species": "Dog"},
{"nickname": "Max", "species": "Cat"}]}`
如果我将其定义Pet
为嵌入式结构,则可以轻松地将其解组:
type Owner struct {
Name string
Pet
}
type Pet struct {
NickName string
Species string
}
结果导致约翰的宠物被适当地整理。
{John {Rose Dog}}
{Doe { }}
但是由于Pet
实际上也可以是Pet
s的一部分,因此Doe的Pet
s没有正确解组。如果相反
type Owner struct {
Name string
Pet []Pet
}
然后,美国能源部被整理好。
{John []}
{Doe [{Rose Dog} {Max Cat}]}
我怎样才能抓住这两种情况?
Pet
无论如何,我都希望最后将其编组为s的一部分。
您正在查看两个单独的数据结构,因此要用一种struct
类型的数据将其解组,则需要考虑这两种情况:
type Owner struct {
Name string
Pet
Pets []Pet `json:"Pet"`
}
然后,如果您希望切片具有权威性,则在解组后,将嵌入的内容移至切片:
// owner := unmarshall blah blah
if owner.Pet != Pet{} {
owner.Pets = append(owner.Pets, owner.Pet)
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句