MessagePack Java Jackson 序列化和反序列化 POJO 为 MessagePack 的数组类型用来与 msgpack-java:0.6 保持兼容性

在 msgpack-java 0.6 或者早期的版本中,POJO 在 MessagePack 中被序列化和反序列化为数组变量。java

变量的顺序是基于 Java 类中变量的内部顺序了,这种原本是一种原生的序列化方法,可是会致使一些问题。致使这些问题的缘由是在 Java 对象的内部变量的顺序与 Java 实现的顺序不能保证彻底的一致。数组

从另一个角度来看,使用 jackson-databind 进行的序列化和反序列化方式是基于 POJO 的 Key-Value 对的。所以在 jackson-dataformat-msgpack 与 POJO 处理的方式是相同的。所以,这就致使了与 msgpack-java:0.6 或者早期的版本在对 POJO 进行序列化和反序列化的时候不兼容。app

若是你但愿在新的版本中也使用与 msgpack-java:0.6 或者早期版本相同的处理 POJO 的方法,你能够使用 JsonArrayFormat。具体使用方法以下所示:spa

ObjectMapper objectMapper = new ObjectMapper(new MessagePackFactory());code

objectMapper.setAnnotationIntrospector(new JsonArrayFormat());orm

https://www.cwiki.us/display/Serialization/MessagePack+Jackson+Dataformat对象

相关文章
相关标签/搜索