当你希望在地图中不使用字符串为关键,那么你需要使用<代码> MessagePackKeySerializer> 代码来为关键进行序列化。
本测试方法,可以在https://github.com/cwiki-us-demo/serialize-deserialize-demo-java/blob/master/src/test/java/com/insight/demo/serialize/MessagePackSerializer.java中找到。
/* * * testMessagePackSerializationMapKey */@Test @JsonSerialize (keyUsing=MessagePackKeySerializer.class) 公共空间testMessagePackSerializationMapKey () { logger.debug (“testMessagePackSerializationNotCloseInputStream”); byte[]字节=新字节[0]; 整数uuid_a=101; 整数uuid_b=102;//实例化objectmap MessagePack objectmap objectmap=new objectmap(新MessagePackFactory ()); MessageData> Map<整数;地图=new HashMap<在(); MessageData MessageData=https://www.yisu.com/zixun/new MessageData ();//元素的映射 .toString messageData.setUuid (UUID.randomUUID () ()); messageData.setName (“CWIKI。我们——”); 地图。把(uuid_a messageData);//元素B在地图 messageData=https://www.yisu.com/zixun/new messageData (); .toString messageData.setUuid (UUID.randomUUID () ()); messageData.setName (“CWIKI。我们- B”); 地图。把(uuid_b messageData); 尝试{//序列化Java对象的字节数组 字节=objectMapper.writeValueAsBytes(地图); logger.debug(“长度的字节:({})”,bytes.length);//反序列化地图的字节数组 MessageData> Map<字符串;反序列化=objectmap。readValue(字节,新的TypeReference
https://www.cwiki.us/display/Serialization/MessagePack +杰克逊+ Dataformat