JSON对象的编组切片的键名需要小写[重复]

Posted

技术标签:

【中文标题】JSON对象的编组切片的键名需要小写[重复]【英文标题】:Key name of of marshaled slice of JSON objects needs to be lower case [duplicate] 【发布时间】:2021-11-26 00:52:02 【问题描述】:

如何在此代码的编组 JSON 输出中将密钥名称 Id 设为小写?

    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))

返回:

[
    "Id":"some identifier",
    "Id":"some other identifier"
]

但我使用的 API 需要小写,例如:

[
    "id":"some identifier",
    "id":"some other identifier"
]

我对 golang 还是很陌生,所以任何方向都值得赞赏!

【问题讨论】:

【参考方案1】:

你只需设置json struct 标签

type Topic struct 
    Id string `json:"id"`

【讨论】:

你知道,正如你回答的那样,我突然想到了这个想法,我正要删除这个问题。

以上是关于JSON对象的编组切片的键名需要小写[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用数组更改 JSON 的键名

MySQL数据类型 - JSON数据类型

如何“过滤”JSON 以获得唯一的键名/值对?

过滤数组对象中的键值,将将键值替换成我们需要的键名及值名

使用 jq 保留键名展平 JSON

样式化的组件 - 尝试通过不同的键名访问 json