在本測(cè)試代碼中疏遏,我們定義了一個(gè) POJO 類脉课,名字為?MessageData挂疆,你可以訪問下面的鏈接找到有關(guān)這個(gè)類的定義。
POJO 的序列化和反序列化
你僅僅需要對(duì)MessagePackFactory進(jìn)行實(shí)例化下翎,然后傳遞參數(shù)到com.fasterxml.jackson.databind.ObjectMapper的構(gòu)造方法缤言。
然后你就可以用與jackson-databind相同的方法使用MessagePack格式化數(shù)據(jù)。
本測(cè)試方法视事,可以在https://github.com/cwiki-us-demo/serialize-deserialize-demo-java/blob/master/src/test/java/com/insight/demo/serialize/MessagePackSerializer.java中找到胆萧。
/**
* SerializationPOJO
*/
@Test
public void testMessagePackSerializationPOJO() {
? ? byte[] bytes = new byte[0];
? ? String uuid = UUID.randomUUID().toString();
? ? // Instantiate ObjectMapper for MessagePack
? ? ObjectMapper objectMapper = new ObjectMapper(new MessagePackFactory());
? ? MessageData pojo = new MessageData();
? ? pojo.setUuid(uuid);
? ? pojo.setName("CWIKI.US");
? ? try {
? ? ? ? // Serialize a Java object to byte array
? ? ? ? bytes = objectMapper.writeValueAsBytes(pojo);
? ? ? ? logger.debug("Length of Bytes: [{}]", bytes.length);
? ? ? ? // Deserialize the byte array to a Java object
? ? ? ? MessageData deserialized = objectMapper.readValue(bytes, MessageData.class);
? ? ? ? logger.debug("Deserialized Name: [{}]", deserialized.name);
? ? ? ? assertEquals("CWIKI.US", deserialized.name);
? ? } catch (JsonProcessingException ex) {
? ? ? ? logger.error("Serialize Error", ex);
? ? } catch (IOException e) {
? ? ? ? e.printStackTrace();
? ? }
}
https://www.cwiki.us/display/Serialization/MessagePack+Jackson+Dataformat