今天在使用fastJson的时候,在用
其中的
Map<String,String> maps = JSON.parseObject(String str,Map.class)
这个方法的时候,发现把我的JSON字符串转换为Map型的时候,出现了一点小问题
编译时通过,这一点也没问题,但是在我将转换后的Map的Value向另一个对象中装填的时候,运行时出现了异常Integer不能转换为String
但是JOSN的转换不是已经转换成了
Map<String,String>
按道理说,我如果用 maps.get(key)拿到的应该都是String,这个时候向对象中set的时候,因为对象中的属性也是String型的,应该可以成功的装入,但是却出现了异常Integer不能转换为String,最让人无语的是在编译的时候没有报错。
之后我索性就自己写了一个简单的转换方法解决了这个问题
/**
* json转Map<String,String>
* @param jsonObject 存储着source层信息的JSON
* @return maps 存储着source层信息的Map<String,String>
*/
private Map<String,String> jsonToMap(JSONObject jsonObject) {
Map<String,String> maps = Maps.newHashMap();
Set<String> jsonObjectKeySet = jsonObject.keySet();
for(String key : jsonObjectKeySet){
maps.put(key,jsonObject.getString(key));
}
return maps;
}