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

2019-04-30 10:11:51 +08:00
 ahmcsxcc

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

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

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

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

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

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

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

© 2021 V2EX