美文网首页
JSON转换泛型对象 泛型字段转换异常问题ClassCastEx

JSON转换泛型对象 泛型字段转换异常问题ClassCastEx

作者: Kamiya_ | 来源:发表于2021-03-26 17:10 被阅读0次

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去处理泛型。

--- 问题虽小 , 真恶心人

相关文章

  • JSON转换泛型对象 泛型字段转换异常问题ClassCastEx

    alibaba.fastjson : JSON对象转换Bean对象,对象内泛型字段类型转换异常问题。 错误示例: ...

  • 泛型与反射

    引入泛型的目的 通过泛型使得在编译阶段完成一些类型转换的工作,避免在运行时强制类型转换而出现ClassCastEx...

  • Fastjson在将json字符串转换成带范型的对象时的方式

    json使用的是fastjson,json转换对象的时候,如果对象中存在泛型对象,则需要特殊处理下才能正常转换。 ...

  • java parseObject转换的类有泛型

    json使用的是fastjson,json转换对象的时候,如果对象中存在泛型对象,则需要特殊处理下才能正常转换。 ...

  • 转换操作符

    Cast:将非泛型的 IEnumerable 集合元素转换为指定的泛型类型,若类型转换失败则抛出异常。 ToArr...

  • 章节笔记——泛型与反射机制

    泛型 反射机制 泛型:由于类型转换错误,编译时不报错,运行时报错。为了弥补这个问题,用泛型弥补,集合类添加对象不需...

  • 泛型

    1.泛型(generic)泛型:可以按类型进行参数化的类。 2.泛型的好处 将运行时期的问题ClassCastEx...

  • UnsafePointer、UnsafeRawPointer 的

    rawPointer 转换 泛型指针

  • 寒假15:泛型

    泛型概述: 泛型定义格式 举个例子: 泛型的好处:把运行时期的问题提前到了编译期间避免了强制类型转换 泛型类: 举...

  • 泛型

    泛型的概念 使用泛型的好处 创建集合对象,使用泛型好处:1. 避免了类型转换的麻烦,存储的是什么类型,取出的就是什...

网友评论

      本文标题:JSON转换泛型对象 泛型字段转换异常问题ClassCastEx

      本文链接:https://www.haomeiwen.com/subject/uwzjhltx.html