gpt4 book ai didi

go - 有没有办法在 protoc-gen-go 中使 json 的键名小驼峰命名?

转载 作者:IT王子 更新时间:2023-10-29 02:20:39 25 4
gpt4 key购买 nike

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

但是,我希望 json 的键名是 snake case。

我在查看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 中的字段名称?

最佳答案

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

自己转换名称:

import "github.com/iancoleman/strcase"

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

关于go - 有没有办法在 protoc-gen-go 中使 json 的键名小驼峰命名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51298472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com