我正在尝试手动建模一个表示JSON的.proto文件,该JSON具有带点和@符号的字段名称之一。我收到一个错误,没有明确指出不允许点(。)或@。在构建Java原型库时收到错误消息,当字段名称为@odata.nextLinkExpected field name.且当字段名称为odata.nextLinkMissing field number.

有办法解决吗? Jackson具有JsonProperty批注,可以在JSON表示中指定实际的字段名称,而您可以在Java类中选择合理的字段名称。

如果您感到好奇,这与Open Data Protocol有关,它们的命名约定就是这样。

最佳答案

总有一种解决方法:)但是我不确定是否值得付出努力。首先要说的是,PB字段具有严格的命名约定,即in proto filesin Java generated code。没有技巧可让您使用特殊字符。注释也不是简单的方法。生成了Java原始代码,因此您必须修改编译器以添加注释。 opensource从技术上讲是可行的。实际上...取决于您:)

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

关于java - protobuf-具有特殊字符的字段名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41938112/

10-14 12:04
查看更多