protobuf - 包含特殊字符的字段名称

时间:2017-01-30 14:18:16

标签: java json protocol-buffers

我正在尝试手动建模表示JSON的.proto文件,该文件的字段名称之一带有点和@符号。我收到的错误没有明确说明不允许使用点(。)或@。构建Java proto库时收到的错误消息,当字段名称为@odata.nextLink时为Expected field name.,字段名称为odata.nextLink时为Missing field number.

有没有办法解决这个问题? Jackson有一个JsonProperty注释,可以在JSON表示中指定实际的字段名称,而你可以在Java类中选择一个合理的字段名称。

如果您感到好奇,这与Open Data Protocol有关,其命名惯例就是这样。

1 个答案:

答案 0 :(得分:1)

总有一种方法可以解决它:)但我不确定它是否值得努力。首先要说的是,PB字段具有严格的命名约定in proto files以及in Java generated code。没有黑客能够获得你的特殊角色。注释也不是一个简单的出路。生成Java原型代码,因此您必须修改编译器以添加注释。这是opensource技术上可行的。实际上......取决于你:)

正如您所说手动建模原型文件,我的建议是制定某种命名约定(例如,替换. - > _@ - > _at_)。然后翻译Odata名称并通过Java Reflection调用getter / setter。