关于JSONObject.toJSONString出现地址引用问题

 更新时间:2022年03月03日 09:41:36   作者:礞石  
这篇文章主要介绍了关于JSONObject.toJSONString出现地址引用问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

JSONObject.toJSONString地址引用问题

如果一个对象中有两个同类型的对象属性a、b,如果a、b直接引用同一对象的内存地址,JSONObject.toJSONString方法得到的json字符串会出现内存地址引用。

public static void main(String[] args) {
        JsonVO jsonVO = new JsonVO();
        A a = new A();
        a.setA("a");
        a.setB("b");
        jsonVO.setA(a);
        jsonVO.setB(a);
        System.out.println(JSONObject.toJSONString(jsonVO));
    }
@Data
public class JsonVO implements Serializable {
    private A a;
    private A b;
}
@Data
public class A implements Serializable {
    private String a;
    private String b;
}

控制台输出结果:

{“a”:{“a”:“a”,“b”:“b”},“b”:{"r e f " : " ref":"ref":".a"}}

如何避免呢?

System.out.println(JSONObject.toJSONString(jsonVO, SerializerFeature.DisableCircularReferenceDetect));

不要盲目的使用JSONObject.toJSONString

JSONObject.toJSONString会默认执行你这个要解析的类中的所有get方法

很容易出现空指针异常,而应该换为gson.toJson()这个方法

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解Java变量与常量

    详解Java变量与常量

    这篇文章主要介绍了Java变量与常量,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • java实现Dijkstra最短路径算法

    java实现Dijkstra最短路径算法

    这篇文章主要为大家详细介绍了java实现Dijkstra最短路径算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • SpringBoot Devtools实现项目热部署的方法示例

    SpringBoot Devtools实现项目热部署的方法示例

    这篇文章主要介绍了SpringBoot Devtools实现项目热部署的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • java 线程池存在的意义

    java 线程池存在的意义

    这篇文章主要介绍了java线程池存在的意义,通过多线程案例模拟锁的产生的情况展开对主题的详细介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-06-06
  • 解决IDEA springboot

    解决IDEA springboot"spring-boot-maven-plugin"报红问题

    这篇文章主要介绍了解决IDEA springboot"spring-boot-maven-plugin"报红问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • SpringBoot使用log4j2将日志记录到文件及自定义数据库的配置方法

    SpringBoot使用log4j2将日志记录到文件及自定义数据库的配置方法

    这篇文章主要介绍了SpringBoot使用log4j2将日志记录到文件及自定义数据库的配置方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-03-03
  • Springcloud sentinel安装和使用方法解析

    Springcloud sentinel安装和使用方法解析

    这篇文章主要介绍了Springcloud sentinel安装和使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • Springboot+Vue+shiro实现前后端分离、权限控制的示例代码

    Springboot+Vue+shiro实现前后端分离、权限控制的示例代码

    这篇文章主要介绍了Springboot+Vue+shiro实现前后端分离、权限控制的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Unity&Springboot实现本地登陆验证

    Unity&Springboot实现本地登陆验证

    本文主要介绍了Unity&Springboot服务器/本地登陆验证,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 详解如何使用ModelMapper库进行对象之间的属性映射

    详解如何使用ModelMapper库进行对象之间的属性映射

    这篇文章主要介绍了如何使用ModelMapper库进行对象之间的属性映射实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07

最新评论