关于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错误的解决
目录 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
-
解决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
-
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
随机推荐
- Android组件WebView编写有道词典小案例分享
- Node.js实用代码段之获取Buffer对象字节长度
- asp.net request.PathInfo实现的url重写
- php中getservbyport与getservbyname函数用法实例
- 浅析PHP Socket技术
- 在Python中使用SQLite的简单教程
- ASP上传漏洞之利用CHR(0)绕过扩展名检测脚本
- Android手机拍照或选取图库图片作为头像
- mysql跨数据库复制表(在同一IP地址中)示例
- php下安装配置fckeditor编辑器的方法
- javascript实现的一个自定义长度的文本自动换行的函数。
- 详解基于javascript实现的苹果系统底部菜单
- jQuery原生的动画效果
- 分享PHP函数实现数字与文字分页代码
- Android 为ListView添加分段标头的方法
- c语言读取csv文件和c++读取csv文件示例分享
- Debian中完全卸载MySQL的方法
- java发送短信系列之同步、异步发送短信
- 利用IE Object Data漏洞制做全新网页木马(图)
- Android实现商品展示效果
