gpt4 book ai didi

go - 结构的 Json 编码(marshal)映射导致空对象

转载 作者:IT王子 更新时间:2023-10-29 01:59:07 25 4
gpt4 key购买 nike

我定义了一个简单的对象:

type Link struct {
Href string `json:"href"`
Title string `json:"href,omitempty"`
}

type Foo struct {
Links map[string]Link `json:"_links"`
}

foo := new(Foo)
foo.Links = make(map[string]Link, 0)
foo.Links["self"] = Link{Href: "/href"}

将其编码为 JSON 后,我期望:

{
"_links": {
"self": {
"href": "/href"
}
}
}

但我得到的是:

{
"_links": {
"self": {}
}
}

知道为什么吗?这是一个完整的例子:

https://play.golang.org/p/3RA3Mrx3pt

最佳答案

你定义了 json:"href" 两次:

type Link struct {
Href string `json:"href"`
Title string `json:"href,omitempty"`
}

将第二个更改为 json:"title" 后它起作用了:https://play.golang.org/p/uEbyqtHYF8 .

关于go - 结构的 Json 编码(marshal)映射导致空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34796586/

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