alibaba.fastjson :
JSON对象转换Bean对象,对象内泛型字段类型转换异常问题。
错误示例:
public class Object<T> {
private List<T> data;
}
JSONObject json;
Object<A> obj= JSONObject.toJavaObject(json,Object.class);
List<A> list = obj.getData();
A a = list.get(0); //list.get(0) 当前为JSONArray类型
//报错:java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to Object
java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to Object
正确方式
JSONObject json;
//JSON字符串转换泛型对象
Object<A> obj= JSON.parseObject(JSONObject.toJSONString(json),new TypeReference<Object<A>>(){});
List<A> list = obj.getData();
A a = list.get(0);
其他JSON包操作方式差不多,jackson 、Gson , 先转成Json字符串,再根据对应包下的type去处理泛型。
--- 问题虽小 , 真恶心人