【发布时间】:2014-04-07 04:09:09
【问题描述】:
我想序列化一个复杂的 Java 对象抛出 Internet。第一次,我使用 Google Gson 序列化课程。 Gson 提供了一种简单的方法来将对象序列化为 JSON 字符串,并通过 toJson 和 fromJson 从 JSON 字符串反序列化为对象。但是,JSON 字符串不是那么紧凑,在序列化 byte[] 数组时会引入很大的开销。
我正在阅读 Google 协议缓冲区。根据教程,用户必须手动为每条消息编写 .proto 文件。似乎 Protocol Buffer 无法识别用户定义的类(Google protocol buffers - user defined java objects as messages fields)。我有两个问题:
- protocol buffer 是否知道内置的 Java 定义的类,例如 BigDecimal、BigInteger...?
- 如果我们有一个复杂的类,它递归地将其他用户定义的类作为成员,我们是否需要遍历所有类的定义并将它们声明为它们在 .proto 文件中归档的消息?如果是这样,这对用户来说是非常糟糕的(也许他们使用了一些外部 java 库并且没有该库中定义的类的源代码)
有没有工具可以自动遍历Java类并生成.proto?
【问题讨论】:
-
“去消毒” JSON 输入?不错的一个;)
-
Protocol Buffers 不支持 Big-Integer / Big-Decimal。
标签: java json serialization protocol-buffers