golang 中 struct 的字段转为 json 如何默认是小写

2019 年 4 月 30 日
 ahmcsxcc

如果用 tag,每个字段都要重写一遍,太麻烦了 有没有默认就是小写的方式

4475 次点击
所在节点    问与答
16 条回复
6IbA2bj5ip3tK49j
2019 年 4 月 30 日
没有,脑子一拍,要省去 private 和 public,替开发人员减轻思维负担。
sunjourney
2019 年 4 月 30 日
code gen
用自制 DSL 写 go 是基本操作哈
sunjourney
2019 年 4 月 30 日
提供一个思路。套一个接口输出的中间,先用 JSON parse 成 map,替换 key,序列化。
ahmcsxcc
2019 年 4 月 30 日
@sunjourney #3
这也太麻烦了,还不如直接写 tag
hmoe
2019 年 4 月 30 日
sunjourney
2019 年 4 月 30 日
@ahmcsxcc #4 找轮子啊,应该有现成的 json encoder 吧,换掉内建的
feeeei
2019 年 4 月 30 日
我的方案是使用 `github.com/json-iterator/go` ,可以全局修改 JSON 命名格式。
官方文档链接: http://jsoniter.com/go-tips.cn.html
hash
2019 年 4 月 30 日
没有,估计 Google 内部工具链很全,这种模板代码都是机器生成而不是人来写.
toma77
2019 年 4 月 30 日
@hmoe 我也一直在用这个,不过有些需要自己改,比如 float64 会转化成 int
faceair
2019 年 4 月 30 日
ahmcsxcc
2019 年 4 月 30 日
@sunjourney #6
@faceair #10

感谢,这就是我想要的
WilliamYang
2019 年 4 月 30 日
其实 Goland 里搜索插件, 有添加 tags 的插件的, 可以是 snake_case 或 camelCase
ahmcsxcc
2019 年 4 月 30 日
@WilliamYang #12
这还是用 tag 啊
zzzzzzzzzp
2019 年 4 月 30 日
https://github.com/fatih/gomodifytags 这个挺好使的,vim 和 vscode 都用的这个
ahmcsxcc
2019 年 4 月 30 日
@zzzzzzzzzp #14
哥啊,这还是用 tag
auin
2019 年 4 月 30 日
我也觉得自定义 DSL 是用 Go 的基本技能,不少框架都有,说简单点就是 Code Generator

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/559998

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX