gpt4 book ai didi

json - 解码不一致的 JSON

转载 作者:IT王子 更新时间:2023-10-29 01:39:14 26 4
gpt4 key购买 nike

我有这样的 JSON(我无法控制):

{
"foo1":{
"a":{
"up":10,
"down":5
}
},
"foo2":{
"a":{
"up":1,
"down":1
}
},
"bar":{
"up":11,
"down":6
}
}

“foo1”和“foo2”是动态的。

如何在 go 中正确解码此结构?

如果我能告诉 go 不要尝试反序列化“bar”(不一致的属性)就好了。

最佳答案

默认情况下,Go 将忽略您解码到的结构中未指定的字段。

在这种情况下,您的结构将设置如下:

type NestedProp2 struct {
Up int
Down int
}
type NestedProp struct {
A NestedProp2
}
type Prop struct {
Foo1 NestedProp
Foo2 NestedProp
}

当你调用 json.Unmarshal 函数时,额外的属性不会被反序列化:

var prop Prop
err := json.Unmarshal(jsonBlob, &prop)
if err != nil {
fmt.Println("error:", err)
}
fmt.Printf("%+v", prop)

所以你得到以下输出:

{Foo1:{A:{Up:10 Down:5}} Foo2:{A:{Up:1 Down:1}}}

您可以在实际中看到它 here.

关于json - 解码不一致的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36322141/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com