gpt4 book ai didi

json - 将结构转换为 JSON,其中一个字段是另一个结构

转载 作者:数据小太阳 更新时间:2023-10-29 03:43:15 27 4
gpt4 key购买 nike

我有两个结构:

type A struct {
Zip string `json:"zip"`
}

type B struct {
Foo string `bson:"foo"`
Bar A `json:"bar"`
}

当我尝试 json.Marshal B 类型时,Bar 字段未正确转换。字段没问题,但值始终为空。输出如下所示:

{"foo": "some-string-value", "bar": {"zip": ""}}

我做错了什么?

最佳答案

您在 A 中的 Zip 字段未填充。

type A struct {
Zip string `json:"zip"`
}

type B struct {
Foo string `bson:"foo"`
Bar A `json:"bar"`
}
func main() {
one := A{"35000"}
two := B{"Foo", one}
json, _ := json.Marshal(two)
fmt.Printf("%s\n", json)
}

输出是(https://play.golang.org/p/kyG1YabpSe):

{"Foo":"Foo","bar":{"zip":"35000"}}

即使有 map

type A struct {
Zip string `json:"zip"`
}
type B struct {
Foo string `bson:"foo"`
Bar A `json:"bar"`
}
func main() {
m := make(map[string]B)

for x := 0; x < 10; x++ {
m[strconv.Itoa(x)] = B{"Hello", A{"35000"}}
}

json, _ := json.Marshal(m)
fmt.Printf("%s\n", json)
}

https://play.golang.org/p/qCsmAGzo4H

输出很好,我不明白你哪里错了。

关于json - 将结构转换为 JSON,其中一个字段是另一个结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40649466/

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