如有两个实体类 User 和Role 。两者是多对多的关系。
User
@Data
@Entity
@Table
(name =
"sys_user"
)
public
class
User {
@Id
@GeneratedValue
@Column
(name =
"user_id"
)
private
Integer userId;
@Column
(name =
"username"
)
private
String username;
@ManyToMany
(cascade = {CascadeType.ALL}, fetch = FetchType.LAZY)
@JoinTable
(
name =
"user_role"
,
joinColumns = {
@JoinColumn
(name =
"user_id"
)},
inverseJoinColumns = {
@JoinColumn
(name =
"role_id"
)}
)
private
Set<Role> roles;
}
Role
@Data
@Entity
@Table
(name =
"sys_role"
)
public
class
Role {
@Id
@Column
(name =
"role_id"
)
private
Integer roleId;
@Column
(name =
"role_name"
, unique =
true
)
private
String roleName;
@ManyToMany
(cascade = {CascadeType.ALL}, fetch = FetchType.LAZY, mappedBy =
"roles"
)
private
Set<User> users;
此时如果我们查询所有的用户,并返回json时,就会出先json死循环问题。因为在json解析时,User对象中有Role,而Role对象中又有User。如此反复循环,就造成了死循环。
@RequestMapping("findAll")
@ResponseBody
public
List<User> findAll(){
List<User> users = repository.findAll();
return users;
}
解决方法
在User实体类中加入
@JsonIgnoreProperties 注解
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@Data
@Entity
@Table
(name =
"sys_user"
)
public
class
User {
@Id
@GeneratedValue
@Column
(name =
"user_id"
)
private
Integer userId;
@Column
(name =
"username"
)
private
String username;
@JsonIgnoreProperties
(value = {
"users"
})
@ManyToMany
(cascade = {CascadeType.ALL}, fetch = FetchType.LAZY)
@JoinTable
(
name =
"user_role"
,
joinColumns = {
@JoinColumn
(name =
"user_id"
)},
inverseJoinColumns = {
@JoinColumn
(name =
"role_id"
)}
)
private
Set<Role> roles;
}
这样的话,你再序列化User对象时,
user.roles 这个对象中只有 user.roles[i].id 和 users.roles[i].name 而没有 user.roles.users!!!!
相关推荐
在JavaScript开发中,有时我们需要将JSON对象转换为JSON Schema,以便对数据进行验证。这在处理用户输入、API交互或者存储复杂数据结构时非常有用。`jsonToSchema`项目可能就是一个工具或库,用于帮助开发者实现这个...
json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象...
利用arcgis的arcpy函数库实现shp文件批量转为json
总的来说,json2.js是解决JSON处理兼容性问题的一个工具,它提供了一种安全且标准化的方式来在JavaScript中进行JSON字符串与对象之间的转换,尤其对于那些不支持原生JSON操作的老版本浏览器而言。
C# 工具类 泛型转JSON 使用 Newtonsoft.Json 转换JSON
同时,了解JSON的语法和结构对有效利用这个插件也非常重要。总之,“unity 自动excel转json插件”是Unity开发过程中一个实用的辅助工具,帮助开发者简化数据管理,专注于游戏的创意和功能实现。
在IT行业中,数据转换是一项常见的任务,特别是在不同的应用...总之,“word表格转json”是一个涉及文件读取、数据解析、对象建模和序列化等多个环节的编程任务,理解这些知识点有助于提升C# WinForms应用开发的能力。
将json转换为javebean的工具,封装jsonschema2pojo,用户可以修改配置文件json2Beans.json,然后运行Json2JavaBean2.bat直接生成对应类。 能够批量转换json为bean,直接拷贝到项目中使用。 提醒: 需要提前安装java...
在使用Hibernate这样的ORM框架时,由于其懒加载机制,可能会遇到JSON序列化时的死循环问题。这是因为CGLIB动态代理生成的对象在序列化时会递归地尝试序列化所有关联的对象,如果对象之间存在循环引用,就会导致无限...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传输数据。它基于JavaScript的一个子集,具有易于人阅读和编写,同时也易于机器解析和生成的特点。在IT领域,将各种数据...
它可以方便地将一种类型的数据转换成另一种类型,比如将字符串转成整数,日期转成字符串等,这对于JSON数据处理的灵活性至关重要。 `JsonUtil.java`看起来是一个自定义的工具类,很可能包含了对`json-lib`和`...
GRIB2文件由一系列消息组成,每个消息包含一个或多个要素,如温度、湿度、风速等。这些要素有各自的定义、单位和地理位置信息。GRIB2的复杂性在于它的多层编码和可扩展性,使得它可以包含多种预测模型和观测数据。 ...
使用nodejs写的一键excel转json工具,,excel2003表使用时全选设置单元格格式为文本,另存为保存一下, 转换完的json为[[],[]]压缩格式和一个合并的json, 实际使用时需要app.js中的parseData转换单个json或者...
xml转换为json的js库文件
lua json文件转换 数据编排 lua配置表转成 json配置表
这时,我们就需要“Excel转Json工具”来解决这个问题。 “Excel转Json工具”正如其名,它是一种能够将Excel文件中的数据转换为JSON格式的软件或在线服务。这种工具通常包含以下核心功能: 1. **导入Excel文件**:...
XML转JSON工具类,支持多层XML嵌套解析转JSON,采用dom4j解析转JSON格式,多次线上环境使用
- 分别将`blogItem`中的元素作为键值对添加到JSON对象中,使用`append`方法并格式化字符串,如`"postdate: '" + blogItem[0] + "'"`。 - 添加右花括号`}`,结束JSON对象。 - 更新`first`为`false`,表示不是第一...
支持Bean转JSON List<> 转JSON
1. **JSON转XML**:将JSON对象转换为XML,通常需要遍历JSON对象的结构,为每个键值对创建相应的XML元素。例如,上面的JSON对象转换为XML可能是: ```xml <key1>value1 <item>1 <item>2 <item>3 ...