当前位置: 首页 > 知识库问答 >
问题:

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

阮鸿煊
2023-03-14

当使用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个答案

梅耘豪
2023-03-14

这个问题解决了。

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

我用过gogoproto。jsontag。

傅涵忍
2023-03-14

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

要自己转换名称:

import "github.com/iancoleman/strcase"

jsonName := strcase.ToSnake(*field.Name)
 类似资料:
  • 问题内容: 我正在编写小型且非常干燥的框架,该框架高度依赖元数据。我想知道是否有一种方法来获取方法参数名称,即给定一些方法 得到的字符串和。 我知道我可以注释参数,但是那不是很好。 问题答案: 我们为包含参数名称的String[]的方法创建了一个自定义注释。与必须注释每个单独的参数相比,此方法感觉易于管理。我们计划添加构建时检查,以确保带注释的参数名称的数量与参数的数量匹配,因为这是我们所需要的。

  • 简而言之:有没有一种方法可以在gcc或CLANG中不推荐命名空间? 长: 现在我想知道是否有更好的方法来做类似的事情,比如将名称空间util的使用标记为不推荐使用。 我们使用GCC4.7.3作为生产编译器,但是针对clang进行构建和测试,以尝试捕捉gcc的细节;因此,在这些编译器上工作的东西会有所帮助。

  • 问题内容: 有没有一种简单的方法可以列出软件包中所有模块的名称,而无需使用? 例如,给定此程序包: 我想知道是否有标准或内置的方式来做这样的事情: 手动方法是遍历模块搜索路径,以找到包的目录。然后可以列出该目录中的所有文件,过滤出唯一命名为py / pyc / pyo的文件,剥离扩展名,然后返回该列表。但这对于模块导入机制已经在内部完成的工作来说似乎是相当多的工作。该功能在任何地方都可以使用吗?

  • 问题内容: 嗨,我想使用WMI类来查找应用程序和产品信息。但是问题是我想使用Java或任何脚本语言(如python,javascript或perl)。我听说过JWMI,这可能是一个选择。有人可以帮我吗??? 问题答案: JavaScript和Java不是一回事。 JavaScript Windows脚本宿主(WSH)下提供了JavaScript。有了它,访问WMI相当容易: jWMI(Java)

  • 例如,-从索引0迭代到索引10。 -但从10到0不起作用,如何使用流API实现?

  • 我在Java写了一个游戏。我做了一个叫做Camera的类,女巫有两个静态的int表示相机的位置。摄像机的位置要求每一帧在许多不同的地方。这个位置有时也会在几个不同的地方被修改。我的问题是,我是否能够以一种使依赖的类独立和更可重用的方式分离camera类。我看过一些东西,包括监听器,但我不确定这些东西是否是用于连续数据传输的。我真的很感激你给我一点建议。 编辑: 同样值得一提的是,我使用的是组件系统