我正在尝试使用messagpack.write(map)
序列化地图。在使用messagepack.read(byte[])
进行反序列化期间,我获得了MapValue
。但我无法使用MapValue.get(key)
获取值。看下面的这个问题
HashMap<Object,Object> map = new HashMap<Object, Object>();
map.put(1,"ONE");
map.put("ONE","TWO");
MessagePack m= new MessagePack();
byte[] b = m.write(map);
MessagePack m1 = new MessagePack();
MapValue value = (MapValue)m1.read(b);
System.out.println(value);// here I am getting {1:"ONE",2:"TWO"}
System.out.println( value.get(1)); // printing the value for key 1. I am getting null.
请帮忙。感谢你。
Nausadh
答案 0 :(得分:3)
您需要使用ValueFactory并转换键以使用Value接口。这不是很直观
// instead of value.get(1) use following
System.out.println(value.get(ValueFactory.createIntegerValue(1)));
// if the key would be a String use:
System.out.println(value.get(ValueFactory.createRawValue("key")));