Jackson 后台将javabean对象、List转为json格式字符串并返回,同时前台解析

时间:2021-05-02 19:09:02

Controller中:



这里有两点需要注意:

一、如果获取数据的方式采用hibernate的load()方法,按上述方法序列化javabean对象或者是List时可能会有关Lazy****proxy***等的异常(已记不清,转换后的json字符串会有handler这个单词),这是因为load()获取数据的方式支持延迟加载,如果需要通过上述方式序列化对象或是List,需要在javabean的类上面添加如下注解:

@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}),如图:

Jackson 后台将javabean对象、List转为json格式字符串并返回,同时前台解析

二、java对象序列化为json对象时,如果一个实体类与另一个实体类相关联,则会造成序列化死递归,即使是将List序列化为json镀对象,如果List中的javabean与另一个实体类相关联,同样会造成死递归。这种情况可以在多对一的多表中,通过在关联的属性上注解@JsonIgnore来解决:

实体类Programa中:

@ManyToOne
@JoinColumn(name="sid")  //站点, 多对一

@JsonIgnore
private Site site;

Jackson 后台将javabean对象、List转为json格式字符串并返回,同时前台解析