Reputation: 93
I'm trying to serialize map using messagpack.write(map)
. During deserialization using messagepack.read(byte[])
i got MapValue
. But I cannot fetch the values using MapValue.get(key)
. Look this problem below
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.
Please help on this.. Thanking you.
Nausadh
Upvotes: 2
Views: 1154
Reputation: 56
You need to use ValueFactory and convert key to use a Value interface. It's not really intuitive
// 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")));
Upvotes: 4