我正在尝试手动建模一个表示JSON的.proto
文件,该JSON具有带点和@符号的字段名称之一。我收到一个错误,没有明确指出不允许点(。)或@
。在构建Java原型库时收到错误消息,当字段名称为@odata.nextLink
为Expected field name.
且当字段名称为odata.nextLink
为Missing field number.
时
有办法解决吗? Jackson具有JsonProperty
批注,可以在JSON表示中指定实际的字段名称,而您可以在Java类中选择合理的字段名称。
如果您感到好奇,这与Open Data Protocol有关,它们的命名约定就是这样。
最佳答案
总有一种解决方法:)但是我不确定是否值得付出努力。首先要说的是,PB字段具有严格的命名约定,即in proto files和in Java generated code。没有技巧可让您使用特殊字符。注释也不是简单的方法。生成了Java原始代码,因此您必须修改编译器以添加注释。 opensource从技术上讲是可行的。实际上...取决于您:)
正如您说的那样,您正在手动建模原型文件,我的建议是制定某种命名约定(例如,替换.
-> _
和@
-> _at_
)。然后翻译Odata名称,并通过Java Reflection调用getter / setter方法。
关于java - protobuf-具有特殊字符的字段名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41938112/