我想序列化一个复杂的Java对象抛出Internet。我第一次使用Google Gson序列化了这个类。 Gson提供了一种简单的方法,可以将对象序列化为JSON字符串,并通过toJson和fromJson从JSON字符串反序列化为对象。但是,JSON字符串不那么紧凑,并且在序列化byte []数组时会引入很大的开销。
我正在阅读Google协议缓冲区。根据教程,用户必须手动为每条消息编写.proto文件。似乎协议缓冲区无法识别用户定义的类(Google protocol buffers - user defined java objects as messages fields)。我有两个问题:
是否有工具可以自动遍历Java类并生成.proto?
答案 0 :(得分:1)
protobuf中有一系列可能的类型。 BigDecimal / BigInteger不是。您可以编写自己的转换步骤。 https://developers.google.com/protocol-buffers/docs/proto
是的,您需要旅行并编写从/到java类和proto的映射。这是必要的一步,不幸的是每个人都必须这样做。我不认为有一个自动化工具。也许你可以写一个和开源的吗? :)
我想,你问的是从java类到protobuf消息的完整的一对一映射。通常,这种映射很难以自动化方式完成。此外,谷歌故意将protobuf限制为一个序列化协议,而不是像hibernate和spring那样的ORM。