登录
首页 >  Golang >  Go问答

能否使protoc-gen-go生成的json键名符合小写驼峰命名规范?

来源:stackoverflow

时间:2024-03-23 20:18:32 412浏览 收藏

当使用 protoc-gen-go 从 proto 文件生成 Go 代码时,JSON 键名通常与 proto 文件中指定的键名相同。虽然官方推荐使用 snake case,但本文探讨了如何将 JSON 键名转换为 snake case 命名规范。

问题内容

当使用protoc-gen-go从proto文件生成go代码时,json的键名将保留为proto文件中指定的键。 在官方字段名中推荐使用snake case。 https://developers.google.com/protocol-buffers/docs/style

但是,我希望 json 的键名称为蛇形命名法。

当我检查protoc-gen-go的生成器代码时,我确实将字段名称设置为原样。

jsonname := *field.name
tag := fmt.sprintf("protobuf:%s json:%q", g.gotag(message, field, wiretype), jsonname+",omitempty")

这对我来说是理想的解决方案:

jsonName := field.GetJsonName()

如何获取蛇形大小写的字段名称?


解决方案


这个问题已经解决了。

通过使用 gogo/protobuf(https://github.com/gogo/protobuf)。

我用的是gogoproto.jsontag

你自己计算标签名称,所以你可以自己转换。 github 上已经有一个包可以完成这项工作:https://github.com/iancoleman/strcase

要自己转换名称:

import "github.com/iancoleman/strcase"

jsonName := strcase.ToSnake(*field.Name)

今天关于《能否使protoc-gen-go生成的json键名符合小写驼峰命名规范?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>