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對象

相關文章
相關標籤/搜索