首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Go中使用JSON Marshal的小写JSON键名称

Go中使用JSON Marshal的小写JSON键名称
EN

Stack Overflow用户
提问于 2012-07-28 02:46:19
回答 2查看 51.1K关注 0票数 202

我希望使用"encoding/json"包来封送在我的应用程序的一个导入包中声明的结构。

例如:

代码语言:javascript
复制
type T struct {
    Foo int
}

因为它是导入的,所以结构中所有可用的(导出的)字段都以大写字母开头。但我希望密钥名称小写:

代码语言:javascript
复制
out, err := json.Marshal(&T{Foo: 42})

将导致

{"Foo":42}

但我希望能得到

{"foo":42}

有没有可能以一种简单的方式绕过这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-28 03:14:26

看一下encoding/json.Marshal的文档。它讨论了如何使用struct field标记来确定如何格式化生成的json。

例如:

代码语言:javascript
复制
type T struct {
    FieldA int    `json:"field_a"`
    FieldB string `json:"field_b,omitempty"`
}

这将生成JSON,如下所示:

代码语言:javascript
复制
{
    "field_a": 1234,
    "field_b": "foobar"
}
票数 303
EN

Stack Overflow用户

发布于 2012-07-28 03:11:25

您可以使用要导出的键制作自己的struct,并为它们提供适当的小写名称的json标记。然后,您可以将所需的结构复制到您的结构中,然后再将其编码为JSON。或者,如果您不想麻烦地创建一个本地结构,您可以创建一个map[string]interface{}并对其进行编码。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11693865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档