fastjson泛型T反序列化

2023-10-29

fastjson泛型T反序列化

当fastjson反序列化时,如果目标对象中包含了泛型,默认会将泛型类转换为JSONObject,获取数据时会报错类型转换错误

java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to org.gyx.sbmweb.test.UserInfo

此时,我们转换时使用TypeReference

Resp1<UserInfo> resp1 = JSONObject.parseObject(json, new TypeReference<Resp1<UserInfo>>(){});

这样可以解决一时的问题,但是如果这个泛型我们以Class tClass 方式传进来了,我们就需要给TypeReference参数

	private static <T> Resp1<T> getResp(Resp resp, Class<T> tClass){
        String json = JSON.toJSONString(resp);
        Resp1<T> resp1 = JSONObject.parseObject(json, new TypeReference<Resp1<T>>(tClass){});
        return resp1;
    }

完整代码

public class FastJsonTest {
    public static void main(String[] args) {
        String json = "{\"data\":{\"data\":[{\"code\":\"1234\",\"name\":\"xiaogao\"}]},\"msg\":\"成功\",\"status\":\"OK\"}";
        Resp1<UserInfo> resp1 = getResp(json, UserInfo.class);
        List<UserInfo> data = resp1.getData().getData();
        for (UserInfo info : data) {
            System.out.println(info);
        }
    }

    private static <T> Resp1<T> getResp(String json, Class<T> tClass){
        Resp1<T> resp1 = JSONObject.parseObject(json, new TypeReference<Resp1<T>>(tClass){});
        return resp1;
    }
}

@Data
class UserInfo{
    private String code;
    private String name;
}

@Data
class Resp1<T>{
    private String status;
    private String msg;
    private RespBody1<T> data;
}

@Data
class RespBody1<T>{
    private List<T> data;
}

如有问题,欢迎指正

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

fastjson泛型T反序列化 的相关文章

  • DbGeography 多边形到 JSON

    我将 DbGeography 多边形存储在数据库中 我的控制器从数据库获取多边形 我需要将它们转换为 JSON var polygons db Areas Where x gt x Type type Select x gt new Vie
  • 迭代函数可以调用自身吗?

    当观看下面的 MIT 6 001 课程视频时 讲师在 28 00 将此算法标记为迭代 但是 在 30 27 他说这个算法和实际的 递归 算法都是递归的 该函数正在使用基本情况调用自身 那么这次迭代情况如何 private int itera
  • Spring中的ProxyFactoryBean

    有人可以解释一下吗代理工厂Bean http static springsource org spring docs current javadoc api org springframework aop framework ProxyFa
  • 本地开发的 Azure Functions 扩展包版本问题

    我有一个带有队列触发器的 Java 11 Azure 函数 该函数在部署到 Azure 时按预期工作 并正确从定义的服务总线主题中提取消息 但是 运行相同的功能locally除非我回滚版本 否则不起作用Azure Functions 绑定扩
  • 我需要在 JFileChooser(打开模式)中显示不带扩展名的文件名。如何?

    我在打开模式下使用 JFileChooser 我需要显示不带扩展名的 文件名 字段 如何 我知道文件视图 它删除文件系统文件中的扩展名 但将所选文件中的扩展名保留在 文件名 字段中解释 http saveimg ru show image
  • JavaFX使节点覆盖父节点边框颜色

    我有一个如下所示的节点 仅使用 css 我希望标签覆盖其父边框颜色 因此标签下方的边框颜色部分变得不可见 我用来制作这个边框的CSS代码 fx border color black fx border width 3 fx border r
  • 如何在 HandlerInterceptorAdapter 中添加 HttpServletRequest 标头?

    我正在尝试将授权标头添加到我的请求中 作为我们切换环境时的临时解决方法 我试图在扩展 HandlerInterceptorAdapter 的拦截器中处理它 我使用 MutableHttpServletRequest 类制作here http
  • 无法从资源加载图片

    So I am trying to load a image file from a resource so that when I export my application into a jar file it could be use
  • 确定序列化对象的类型

    我需要通过套接字发送消息 从用户到引擎的请求 以及从引擎到用户的响应 所以流程本质上是 serialized request Server lt network gt Client serialized response request r
  • 在grails控制器中识别ajax请求或浏览器请求

    我正在开发一个使用大量ajax的grails应用程序 如果请求是ajax调用 那么它应该给出响应 这部分正在工作 但是如果我在浏览器中输入URL 它应该带我到主页 索引页面而不是请求的页面 下面是ajax调用的示例gsp代码
  • java setFullScreenWindow 在 Mac 中隐藏登录对话框

    我使用的是全屏窗口 类似于屏幕保护程序 使用这里的方法 GraphicsEnvironment getLocalGraphicsEnvironment getDefaultScreenDevice setFullScreenWindow t
  • Struts 1 到 Spring 迁移 - 策略

    我有一个legacy银行应用程序编码为Struts 1 JSP现在的要求是迁移后端 目前为 MVC to Springboot MVC 后续UI JSP 将迁移到angular Caveats 1 后端不是无状态的 2 会话对象中存储了大量
  • 纱线上的火花,连接到资源管理器 /0.0.0.0:8032

    我正在我的开发机器 Mac 上编写 Spark 程序 hadoop的版本是2 6 spark的版本是1 6 2 hadoop集群有3个节点 当然都在linux机器上 我在idea IDE中以spark独立模式运行spark程序 它运行成功
  • 正确签名的 JNLP 应用程序无法在 Java 7 中运行

    我有一个 JNLP 应用程序 由于证书过期需要更新 我有一个经过 CA 验证的新证书 我已将新证书导入到我的密钥库中 我已导入完整的证书链 我的构建文件对构建中的 jar 进行签名和时间戳
  • BadPaddingException:无效的密文

    我需要一些帮助 因为这是我第一次编写加密代码 加密代码似乎工作正常 但解密会引发错误 我得到的错误是 de flexiprovider api exceptions BadPaddingException 无效的密文 in the 解密函数
  • java中使用多线程调用同一类的不同方法

    我有一个类 如下所示 具有三种方法 public class MyRunnable implements Runnable Override public void run what code need to write here to c
  • 如何从 JavaFX 中的另一个控制器类访问 UI 元素?

    我有一个使用 NetBeans 8 编写的 JavaFX Java 8 应用程序 没有SceneBuilder 我的应用程序有一个主窗口 该窗口有自己的 FXML 文件 primary fxml 和自己的控制器类 FXMLPrimaryCo
  • 如何使用自定义 JDK 构建 Jenkins 项目?

    我有一个常规的 Jenkins 实例 运行一些多分支管道 该实例在 JDK 11 上运行 因为 Jenkins 并不真正支持更高版本 没关系 但不好的是 我的所有管道似乎也都受到 Java 11 的限制 Jenkins 仅使用它自己也使用的
  • 决策树和规则引擎 (Drools)

    In the application that I m working on right now I need to periodically check eligibility of tens of thousands of object
  • mybatis:使用带有 XML 配置的映射器接口作为全局参数

    我喜欢使用 XML 表示法来指定全局参数 例如连接字符串 我也喜欢 Mapper 注释 当我尝试将两者结合起来时 我得到这个例外 https stackoverflow com questions 4263832 type interfac

随机推荐

  • (java基础学习)异常

    1 基本概念 java语言中 将程序中发生的不正常情况称为 异常 开发过程中的语法错误和逻辑错误不是异常 2 异常事件分为两大类 1 Error 错误 2 Exception 1 Error 错误 java虚拟机无法解决的严重问题 如 JV
  • element ui动画加载

    在正常的业务交互中我们都无法避免接口的交互 这里就会出现一些性能比较差的接口 加载的时间比较长 还有时我们正在加载某个东西时会希望用户别去操作其他东西 确实element给我们封装了一个非常简单好用的加载动画组件 我们只需要在任意元素上绑定
  • wireshark 找不到wifi网卡

    我今天用wireshark想来试一下抓包 我是用wifi上网 结果wireshark上根本就找不到无线网卡 原因是因为我没有打开npf服务 原本我也不知道是因为没有开启npf服务的原因 我偶然中打开了wireshark安装目录下的wires
  • Linux下ffmpeg的基本编译

    Linux下ffmpeg的基本编译 Linux下编译 1 源码下载地址 http ffmpeg org download html 2 将源码包上传到Linux编译服务器上并解压出来 3 创建编译路径 mkdir home compile
  • vue3.0 + element-plus + 上传图片到七牛云

    时间 2021 8 30 想在项目中 把上传的图片存储到 七牛云 上 但是发现 七牛云他只给了一个限时 30 天的 cdn 就是在30天后 这个就会取消掉 不知道上传后的图片还有没有在 需要绑定 备案的域名 就应该可以永久使用了吧 不过我没
  • 华为路由器默认用户名密码

    AR路由器的缺省账号密码如下 V200R003C00版本 AR150 200系列路由器的Telnet缺省用户名为admin 缺省密码为admin 缺省级别为15级 Web网管缺省用户名为admin 缺省密码为admin 缺省级别为15级 其
  • PHP之Base64+php://filter绕过、disabled_function绕过

    目录 一 Base64 php filter绕过 1 思路分析 2 实践验证 二 disabled function绕过 一 Base64 php filter绕过 上课讲了这样一道题 一起来看下 以下代码适用于PHP7 x及以上 5的版本
  • 'react-scripts' 不是内部或外部命令,也不是可运行的程序 或批处理文件--错误处理

    react scripts 不是内部或外部命令 也不是可运行的程序 或批处理文件 错误处理 使用create react app创建项目时 项目运行的好好的 写了一些组件引了一些其他库之后 再次运行项目就报错了 报错信息如下 导致以上错误出
  • Python官方推荐30本面向初学者的书籍!你看过几本?

    现在大多数初学者学习python都是看教学视频 但是小编想说的是 如果你能把一本书籍认认真真的读完 那么比你看教学视频的效果要好的多 今天小编就来带大家看看python官方推荐的30本面向初学者的书籍 总有一本书合你胃口 PYTHON速成班
  • RocksDB写入数据过程DBImpl::Write()源代码分析

    Status DBImpl Write const WriteOptions write options WriteBatch my batch if my batch nullptr return Status Corruption Ba
  • grails4.0.1配置Quartz定时任务

    目录 Job Trigger Schedule 使用 深入理解 Scheduler Job Trigger JobDetail Quartz API 几个重要接口 Scheduler 调度程序 SchedulerFactory 调度程序工厂
  • 显著性检测之Semi-Supervised Video Salient Object Detection Using Pseudo-Labels

    Semi Supervised Video Salient Object Detection Using Pseudo Labels 文章目录 Semi Supervised Video Salient Object Detection U
  • 数据结构:表达式求值

    给定一个表达式 其中运算符仅包含 加 减 乘 整除 可能包含括号 请你求出表达式的最终值 后续可扩展运算符 栈 表达式求值 include
  • 东大c++实验第三周

    include
  • 【Pytorch】Tensor的元素操作

    Tensor的操作 Tensor的主要运算操作通常分为四大类 Reshaping operations 重塑操作 Element wise operations 元素操作 Reduction operations 缩减操作 Access o
  • Springbooot配置logback日志详解及实践

    文章目录 一 前言 二 使用详解 1 logback介绍 2 logback配置 2 1 基本配置 2 2 Logback 配置项详解 2 3 Logback配置打印信息着色 2 4 不同环境配置不同的日志级别 2 5 logback 高级
  • 最详细教程【React+TS】从零开始搭建React+TypeScript+Router+Redux+Less+px2rem自适应+sass+axios反向代理+别名@+Antd-mobile

    前提 你需要准备好node js版本不低于6 14 8 和 git 文章内容比较长 保姆级别教程 全是干货 请耐心看完 通过create react app脚手架搭建项目 1 第一步 注 项目名称不可以出现大写字母 打开文件夹 呼出cmd
  • (十一)K8S可视化工具Rancher学习、安装

    1 Rancher背景概述 在过去几年中 容器技术如 Docker 和容器编排引擎如 Kubernetes 受到了广泛关注和采用 它们为应用程序的部署 可扩展性和管理带来了革命性的变化 然而 随着容器技术的快速发展 容器集群的管理和操作变得
  • 【风险预警】Confluence Wiki OGNL注入漏洞(CVE-2022-26134)

    简述 6月4日 墨菲安全实验室监测发现Atlassian修复了Confluence Server 和 Confluence Data Center 中的OGNL注入漏洞 Atlassian Confluence是企业常用的wiki系统 攻击
  • fastjson泛型T反序列化

    fastjson泛型T反序列化 当fastjson反序列化时 如果目标对象中包含了泛型 默认会将泛型类转换为JSONObject 获取数据时会报错类型转换错误 java lang ClassCastException com alibaba