Gson解析:java.lang.IllegalArgumentException: declares multiple JSON fields named status 问题的解决

在一次写定义系统统一返回值的情况下,碰到了java.lang.IllegalArgumentException: declares multiple JSON fields named status这个类型的错误。网上百度了很多解决的方法。\

具体的方法如下:

1.在父类的重名的字段前面加上transient。但是你会发现父类中加了transient,如果子类中有多个含有status字段的对象还是会解析失败。

2.删除同名字段,但是更多的情况下,我们已经在数据库定义了字段了,所以并不适用。最好的规避方法是,在开发过程中少用status等关键词作为字段名称。

3.@expose 但是多个status上并不起效(更深原理需要进一步研究)

4.对象里缺少 private static final long serialVersionUID = 1L;

5.输java对象需要实现Serializable接口

经过多个版本比较之后,最后了解了,返回体中包含多个同名字段的情况,在进行Gson解析时会进行序列化操作,导致多个同名字段无法识别。我们可以通过防止这个字段序列化的方式解决,就是将同名字段都加上transient。无论是父类还是子类。

Original: https://www.cnblogs.com/selfsalvation/p/16118069.html
Author: bug的自我救赎
Title: Gson解析:java.lang.IllegalArgumentException: declares multiple JSON fields named status 问题的解决

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607830/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 一些简单的sql练习

    准备数据 CREATE TABLE students (sno VARCHAR(3) not null, sname VARCHAR(3) not null, ssex VARCH…

    Java 2023年6月9日
    0106
  • Spring-Cloud-Context模块

    SpringCloud这个框架本身是建立在SpringBoot基础之上的,所以使用SpringCloud的方式与SpringBoot相仿。也是通过类似如下代码进行启动。 Sprin…

    Java 2023年5月30日
    094
  • html2canvas中toDataURL方法返回值为:data,解决方案

    | 0.35分钟 | 572字符 | 1、引言&背景 2、解决方案 3、声明与参考资料 | SCscHero | 2022/6/1 PM11:13 | 系列 | 已完成 每…

    Java 2023年6月5日
    085
  • java本地缓存

    由于服务器、数据库、网络等资源有限,无法支撑越来越多的请求与计算量,所以将一部分数据放在缓存中,以此减小薄弱环节的计算量和请求流程。 网站中缓存的应用场景:1:可以缓存整个页面的h…

    Java 2023年6月15日
    093
  • 2、String类

    常用方法 equals // 区分大小写,判断内容是否相等 equalsIgnoreCase // 忽略大小写的判断内容是否相等 length //获取字符的个数,字符串的长度 i…

    Java 2023年6月7日
    097
  • mysql安装my.cnf配置

    进入my.cnf文件//乱码修改 设置编码 //编码 //连接数据库执行操作 1.只有在普通用户的客户端连接时才能执行这个参数,超级用户或有连接管理权限的用户会跳过这个设置;2.一…

    Java 2023年6月16日
    0107
  • 二叉树,平衡树,2-3树,红黑树

    二叉树(BST) 二叉树中,将比父结点大的数放在右结点,比父结点小的数放在左结点,查找时只需要将其跟父结点对比,大则进入右边,小则进入左边,依次往下; 但是数据本身是有序的,就导致…

    Java 2023年6月7日
    080
  • Java swing实现应用程序对数据库的访问

    最近在完成软件体系结构上机实验时,遇到一个有点点小难度的选做题,题目信息如下: 利用套接字技术实现应用程序中对数据库的访问。应用程序只是利用套接字连接向服务器发送一个查询的条件,而…

    Java 2023年6月7日
    084
  • HTML笔记整理–下节

    欢迎来到HTML基础笔记下节部分! 内联样式 当特殊的样式需要应用到个别元素时,就可以使用内联样式。 使用内联样式的方法是在相关的标签中使用样式属性。样式属性可以包含任何 CSS …

    Java 2023年6月7日
    0116
  • TestLink在线Excel用例转换xml

    项目功能 TestLink在线Excel用例转换xml将符合用例模板的Excel测试用例,转换成xml,用于导入TestLink进行用例管理。 使用方法 1、编写测试用例 2、打开…

    Java 2023年6月6日
    0135
  • Tomcat优化配置

    1、环境: 系统:Windows、Linux Tomcat版本:9 2、编码与性能调优 server.xml文件: 参数说明: * – org.apache.coyot…

    Java 2023年6月5日
    096
  • SpringBoot整合MybatisPlus基本的增删改查,保姆级教程

    概述 MybatisPlus是国产的第三方插件, 它封装了许多常用的CURDapi,免去了我们写mapper.xml的重复劳动,这里介绍了基本的整合SpringBoot和基础用法。…

    Java 2023年6月8日
    079
  • springboot拦截器@Autowired为null解决

    问题原因 拦截器加载的时间点在springcontext之前,所以在拦截器中注入自然为null 文件解决 在spring配置文件中这样写 java;gutter:true; @Be…

    Java 2023年5月30日
    086
  • 【Linux】指令学习

    Linux学习记录 😄生命不息,写作不止🏆 一个有梦有戏的人 @怒放吧德德🌝分享学习心得,欢迎指正,大家一起学习成长! 1、虚拟机网卡配置 服务器重启完成之后,我们可以通过linu…

    Java 2023年6月16日
    0114
  • 5个必知的高级SQL函数

    5个必知的高级SQL函数 SQL是关系数据库管理的标准语言,用于与数据库通信。它广泛用于存储、检索和操作数据库中存储的数据。SQL不区分大小写。用户可以访问存储在关系数据库管理系统…

    Java 2023年6月15日
    0133
  • 微信小程序数据解密(Java 语言)

    pom 依赖 非必须,hutool 是为了使用 AES 工具类,bcprov 是为了使用 PKCS7Padding,都可以自己实现,这里为了方便。 工具类 Original: ht…

    Java 2023年5月29日
    094
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球