关于JSONObject.toJSONString出现地址引用问题
目录
- JSONObject.toJSONString地址引用问题
- 不要盲目的使用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()这个方法
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
解决JSONObject.toJSONString()输出null的问题
目录 JSONObject.toJSONString()输出null 代码 输出 看下SerializerFeature属性 不要盲目的使用JSONObject.toJSONString JSONObject.toJSONString()输出null 问题:fastjson的api种,jsonObject.toJsonString(),当值为null时,没打印出来 代码 JSONObject jsonObject = new JSONObject(); jsonObject.put("id&qu
-
JSONObject toJSONString错误的解决
目录 JSONObject toJSONString错误 1.com.alibaba.fastjson.JSONObject 继承了JSON 2.在使用时需要注意的地方 3.默认过滤掉值为null的key JSONUtils.toJSONString的一个坑 不需要判断使用StringUtils.isBlank进行判断 JSONObject toJSONString错误 1.com.alibaba.fastjson.JSONObject 继承了JSON 可以使用其2个重要的方法: Model m
-
JSON.parseObject和JSON.toJSONString实例详解
JSON.parseObject,是将Json字符串转化为相应的对象:JSON.toJSONString则是将对象转化为Json字符串.在前后台的传输过程中,Json字符串是相当常用的,这里就不多介绍其功能了,直接举一下应用的小例子,帮助理解这两个方法的用法. 首先用maven引入fastjson <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apa
-
关于JSONObject.toJSONString出现地址引用问题
目录 JSONObject.toJSONString地址引用问题 不要盲目的使用JSONObject.toJSONString JSONObject.toJSONString地址引用问题 如果一个对象中有两个同类型的对象属性a.b,如果a.b直接引用同一对象的内存地址,JSONObject.toJSONString方法得到的json字符串会出现内存地址引用. public static void main(String[] args) { JsonVO jsonVO = new
-
php地址引用(php地址引用的效率问题)
复制代码 代码如下: <?php echo 'begin time:'.$begin=microtime(false).'<br/>';//begin to count time $array=array(); for ($i=1;$i<=10000;$i++) {//产生一个很大的数组 $array[$i]=$i; } /* $arr=$array;//拷贝 拷贝并打印总时间0.02 foreach ($arr as $ar) { echo $ar.'<br/>';
-
js中值引用和地址引用实例分析
本文实例讲述了js中值引用和地址引用.分享给大家供大家参考,具体如下: js中任何事务都是对象.包括基本数据类型(undefined,boolean,number,string,null). 对象只是拥有属性和方法的特殊数据类型. 基本数据类型也是对象 var a = "hello"; var b = "hello"; 既然是对象,那么它默认拥有属性和方法 a.length 长度属性 a.toUpperCase() 把字符串a编程大写的方法 a==b,因为是按照 值
-
Javascript地址引用代码实例解析
javascript地址引用 代码如下 var a = new Object(); a.price = 173; var b = a; b.price = 170; //b更改了属性值,a的属性值一起会被改变 alert(a.price); //输出170 var a =3 var b = a; b=4; alert(a); //输出170 可以看出object 是引用 学过c++的人知道 是地址 所以跟PHP不一样 PHP前面是要加&代表地址 ps补充下 复制对象 不修改原来对象属性的方法 v
-
利用JSONObject.toJSONString()包含或排除指定的属性
目录 JSONObject.toJSONString包含或排除指定的属性 演示程序 JSONObjecttoJSONString遇到的坑 引入pom文件 使用JSONObject输出int类型的map JSONObject.toJSONString包含或排除指定的属性 将一个实体对象转换成Json字符串 JSON.toJSONString() FastJson提供的SerializeFilter类可以指定转换时要包含的属性,或者指定转换时要排除的属性. JSONObject.toJSONStri
-
使用JSONObject.toJSONString 过滤掉值为空的key
目录 JSONObject.toJSONString过滤值为空的key 情况 也就是这个方法 JSONObject.toJSONString自动过滤空值 JSONObject.toJSONString 过滤值为空的key 情况 public static String getJsonResult(int status, String msg, Object data){undefined Map<String, Object> resultMap=new HashMap<
-
浅谈PHP变量作用域以及地址引用问题
作用域的概念: 在PHP脚本的任何位置都可以声明变量,但是,声明变量的位置会大大影响访问变量的范围.这个可以访问的范围称为作用域. 主要的常用的包括:局部变量.全局变量.静态变量. 1.局部变量:就是在函数内声明的变量,他保存在内存的栈内,所以访问速度很快.仅在函数内有效. 2.全局变量:与局部变量相反,全局变量可以在程序的任何地方访问.只要在变量前面加关键字GLOBAL,就可以将其识别为全局变量.在整个php文件内有效. 3.静态变量:用static修饰只存在于函数作用域的变量,函数执行结束后
-
Java方法参数是引用调用还是值调用?
方法调用(call by) 是一个标准的计算机科学术语.方法调用根据参数传递的情况又分为值调用( call by reference ) 和引用调用( call by value ) .江湖上有很多关于这两种调用的定义 ,最通常的说法是传递值的是值调用,传递地址的是引用调用.这其实很不恰当,这种 这些说法很容易让我们联想到Java的对象参数传递是引用调用,实际上,Java的对象参数传递仍然是值调用 . 我们首先用一段代码来证实一下为什么Java的对象参数传递是值调用. public class
随机推荐
- 比较SQL Server与Oracle、DB2
- ext combobox动态加载数据库数据(附前后台)
- IOS图片无限轮播器的实现原理
- Shell脚本实现的基于SVN的代码提交量统计工具
- Lua学习笔记之数据类型
- 正则表达式简单的检查输入email是否合法程序
- python发送伪造的arp请求
- ASP.NET 2.0写无限级下拉菜单
- RichTextBox 显示图片和word的代码
- YII实现分页的方法
- 把一张图片变形扭曲成各种不同的长宽
- JavaScript实现基于十进制的四舍五入实例
- 自己动手写的javascript前端等待控件
- JS实现鼠标滑过链接改变网页背景颜色的方法
- php上传图片并给图片打上透明水印的代码
- js阻止浏览器默认行为的简单实例
- js获取url参数的使用扩展实例
- 安装音量控制程序 任务栏音量
- Nginx编译参数大全 configure参数中文详解
- C++调用迅雷接口解析XML下载功能(迅雷下载功能)