Proto3 JSON不将字段名称转换为camelCase

问题描述

Prot3文档说,认情况下,JSON打印机应将字段名称转换为lowerCamelCase并将其用作JSON名称,但我在文件中没有看到这一点:

Lng float32 `protobuf:"fixed32,1,opt,name=Lng,proto3" json:"Lng,omitempty"`
Lat float32 `protobuf:"fixed32,2,name=Lat,proto3" json:"Lat,omitempty"`
message Coordinate {
    float Lng = 1;
    float Lat = 2;
}

是否存在可以执行此操作的显式语法?我正在使用protoc-gen-go v1.25.0protoc v3.13.0

解决方法

我的trial_ends_at遇到同样的问题。所以我发现解决方案是以变量的名义,您应该将原始消息变量更改为:

Proto

protobuf生成以下内容:

message Coordinate {
    float lng = 1;
    float lat = 2;
}

如果您有一个多字变量,则应将其更改为:

Lng float32 `protobuf:"fixed32,1,opt,name=lng,proto3" json:"lng,omitempty"`
Lat float32 `protobuf:"fixed32,2,name=lat,proto3" json:"lat,omitempty"`

所以生成的结果将是:

    float location_lat = 1;

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...