提问者:小点点

有没有一种方法可以让json的关键名称在proc-gen-go中降低CamelCase?


当使用protoc gen go从proto文件生成go代码时,json的密钥名将保留为proto文件中指定的密钥。在官方字段中,建议使用snake案例。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()

在snake case中如何获取字段名?


共2个答案

匿名用户

您正在自己计算标记名,以便自己进行转换。github上已经有一个包执行此任务:https://github.com/iancoleman/strcase

要自己转换名称:

import "github.com/iancoleman/strcase"

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

匿名用户

这个问题解决了。

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

我用过gogoproto。jsontag。