2012-01-06 84 views
4

我一直在使用flexjson api序列化和反序列化具有整數鍵的映射。 現在,反序列化映射鍵被轉換爲字符串。有什麼方法可以將鍵保留爲整數。如何使用java中的整數鍵反序列化映射

這裏是一個示例代碼塊

Map<Integer,Object> map = new HashMap<Integer, Object>(); 
map.put(1, "a"); 
map.put(2,"b"); 
flexjson.JSONSerializer serializer = new flexjson.JSONSerializer(); 
String serializedMapString = serializer.serialize(map); 

flexjson.JSONDeserializer<Map<Integer,Object>> deserializer = new flexjson.JSONDeserializer<Map<Integer,Object>>(); 
Map<Integer,Object> deserializedMap = deserializer.deserialize(serializedMapString); 

for(Integer key: deserializedMap.keySet()){ 
System.out.println(key+"-"+deserializedMap.get(key)); 
} 

反序列化不給任何錯誤,但按鍵得到轉換成字符串。

+0

我使用flexjson-1.9.2 – Raks 2012-01-06 08:47:13

回答

1

這是可能的Genson這樣的:

Genson genson = new Genson(); 
Map<Integer, Object> result = genson.deserialize(json, new GenericType<Map<Integer, Object>>() {}); 
相關問題