FastJson的坑
1.list中放入同一个对象,会出现内存地址引用{"$ref":"#[0]"},后台可以识别,但是前台不会识别 @Test
public void testList(){
User user = new User();
user.setUserName("cgx");
user.setPassword("123456");
@Test
public void testList(){
User user = new User();
user.setUserName("cgx");
user.setPassword("123456");
User user1 = new User();
user1.setUserName("zbz");
user1.setPassword("123456");
ArrayList list = new ArrayList();
list.add(user);
list.add(user1);
list.add(user);
String jsonString = JSON.toJSONString(list,SerializerFeature.DisableCircularReferenceDetect);//关闭循环引用
System.out.println(jsonString);
}
JSON.toJSONString(list,true),会格式化json,方便查看
@Test
public void testList1(){
User user = new User();
user.setUserName("cgx");
user.setPassword("123456");
HashSet<Role> roles = new HashSet<Role>();
HashSet<User> users = new HashSet<User>();
users.add(user);
Role role = new Role();
role.setName("测试角色");
role.setUsers(users);
roles.add(role);
user.setRoles(roles);
//两种办法防止循环引用
//1.在bean的属性上直接@JSONField(serialize=false)去掉不需要转换的属性
//2.
// 遇到sid和sname属性正常进行转换json
SimplePropertyPreFilter filter = new SimplePropertyPreFilter("password","roles","name");
String jsonString = JSON.toJSONString(user,filter,SerializerFeature.DisableCircularReferenceDetect);
System.out.println(jsonString);
}
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。