当使用protoc-gen-go从proto文件生成go代码时,json的密钥名称将保留为proto文件中指定的密钥。 在官方字段名称中,建议使用蛇案。 https://developers.google.com/protocol-buffers/docs/style
但是,我希望json的键名是蛇形。
当我检查protoc-gen-go的生成器代码时,我确实将字段名称设置为原样。
$size
这对我来说是理想的解决方案:
jsonName := *field.Name
tag := fmt.Sprintf("protobuf:%s json:%q", g.goTag(message, field, wiretype), jsonName+",omitempty")
如何获取蛇形的字段名?
答案 0 :(得分:0)
您正在自行计算标签名称,因此您可以自己对其进行转换。 github上已经有一个工作包:https://github.com/iancoleman/strcase
要自己转换名称:
import "github.com/iancoleman/strcase"
jsonName := strcase.ToSnake(*field.Name)
答案 1 :(得分:0)