英文:
Key name of of marshaled slice of JSON objects needs to be lower case
问题
你可以使用结构体的标签(tag)来指定JSON输出的字段名称。在你的代码中,你可以在Id
字段上添加一个json
标签,并将其值设置为"id"
,如下所示:
type Topic struct {
Id string `json:"id"`
}
这样,当你使用json.Marshal
函数将topics
结构体切片转换为JSON字符串时,Id
字段的名称将会被转换为小写的"id"
。
修改后的代码如下:
type Topic struct {
Id string `json:"id"`
}
topics := []Topic{
{Id: "some identifier"},
{Id: "some other identifier"},
}
tops, err := json.Marshal(topics)
if err != nil {
fmt.Println("got an error", err)
}
fmt.Println(string(tops))
输出结果将会是:
[
{"id":"some identifier"},
{"id":"some other identifier"}
]
这样就满足了你所需的小写的JSON输出格式。希望对你有帮助!
英文:
How do I make the key name Id
lower case in the marshaled JSON output for this code?
type Topic struct {
Id string
}
topics := []Topic{
{Id: "some identifier"},
{Id: "some other identifier"},
}
tops, err := json.Marshal(topics)
if err != nil {
fmt.Println("got an error", err)
}
fmt.Println(string(tops))
Returns:
[
{"Id":"some identifier"},
{"Id":"some other identifier"}
]
But the API I'm using requires lower case, like:
[
{"id":"some identifier"},
{"id":"some other identifier"}
]
I am still pretty new to golang, so any direction is appreciated!
答案1
得分: 2
你刚刚设置了json
结构标签。
type Topic struct {
Id string `json:"id"`
}
英文:
You just set the json
struct tag
type Topic struct {
Id string `json:"id"`
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论