fastjson转换对象时出错
"$`ref": "$.data.list[0].merchantModel"` 出现这样的问题在最后面 String jsonObjects = JSON.toJSONStringWithDateFormat(jsonObject, "yyyy-MM-dd HH:mm:ss", SerializerFeature.DisableCircularReferenceDetect); 用这个String就可以了
出现的原因
测试类
@Test
public void ceshi(){
User user = new User();
List list = new ArrayList();
for (int i = 0; i <3 ; i++) {
user.setName("李白");
user.setAge("20");
list.add(user);
}
System.out.println(list);
for (User user1 : list) {
System.out.println("user对象"+user1);
System.out.println("哈希地址"+user1.hashCode());
System.out.println("该对象的json"+JSON.toJSONString(user1));
}
String string = JSON.toJSONString(list);
System.out.println(string);
}
结果
[User(name=李白, age=20), User(name=李白, age=20), User(name=李白, age=20)]
user对象User(name=李白, age=20)
哈希地址50164460
该对象的json{"age":"20","name":"李白"}
user对象User(name=李白, age=20)
哈希地址50164460
该对象的json{"age":"20","name":"李白"}
user对象User(name=李白, age=20)
哈希地址50164460
该对象的json{"age":"20","name":"李白"}
[{"age":"20","name":"李白"},{"$ref":"$[0]"},{"$ref":"$[0]"}]
用同一个对象,进行赋值插入list集合中,然后,集合中虽然是不同对象,但是对象的hashcode是同样,所以用toString打印是显示不同,但是用json解析就不一样了!
出现乱码 进行转化 java.net.URLEncoder.encode(query,"utf-8");


![阿里Json.toString 序列化数组导致$ref[0] 问题 阿里Json.toString 序列化数组导致$ref[0] 问题](http://www.mshxw.com/aiimages/31/319044.png)
