我希望有一个允许序列化Java POJO的库,与Google的优秀Gson库类似。但是,我需要序列化格式非常紧凑(它们需要适合单个UDP数据包),所以我担心序列化为JSON会浪费,而且更喜欢二进制格式。将Google Gson等对象序列化为紧凑的二进制格式?
有这样的事吗?
我希望有一个允许序列化Java POJO的库,与Google的优秀Gson库类似。但是,我需要序列化格式非常紧凑(它们需要适合单个UDP数据包),所以我担心序列化为JSON会浪费,而且更喜欢二进制格式。将Google Gson等对象序列化为紧凑的二进制格式?
有这样的事吗?
几天前,我发现BSON声称是JSON的一个简单的二进制表示。我没有尝试过,但是从它的常见问题解答来看,它并不总是比JSON更紧凑(小数字使用更多空间),但更容易(更快)解析和生成。如果您知道要传输的数据类型,其他协议可能会更有效率(至少在空间方面)比此更高。
改为使用Hessian。如果你想节省一些空间,用GZipOutput/Input Stream
压缩的问题是每条消息都必须单独压缩。由于UDP是有损和会话较少的,因此您不知道流何时启动或缺少某些内容,从而无法对多个数据包进行压缩。 – 2011-02-13 18:26:33
你将不得不为每个数据包使用一个新的流。但是通常这种通用压缩算法对于大量数据更好 - 如果它提供了任何东西,你将不得不进行基准测试。 – 2011-02-13 20:08:11