org.codehaus.jackson转换对象为json字符串一对多关联关系出现死循环

jackson的ObjectMapper在转换对象为json字符串时,如果对象内包含子类(或存在一对多的关联关系)会出现死循环

org.codehaus.jackson.map.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: com.blog.pojo.Album["photos"]->org.hibernate.collection.PersistentBag[0]->com.blog.pojo.Photo["album"]->com.blog.pojo.Album["photos"]->org.hibernate.collection.PersistentBag[0]->com.blog.pojo.Photo["album"]->com.blog.pojo.Album["photos"]->org.hibernate.collection.PersistentBag[0]->com.blog.pojo.Photo["album"]->com.blog.pojo.Album["photos"]->org.hibernate.collection.PersistentBag[0]->//
//原因:这里两个实体类: Album(相册) 和 photo(照片)   是一对多双向关联
//死循环原因: JSON无法对Album的photos属性进去JSON转换
// 解决方法在多方类头部使用
org.codehaus.jackson.annotate.JsonIgnoreProperties //注解
// 一方
@JsonIgnoreProperties(value={"photos"})

@Entity 
@SuppressWarnings("serial") 
@JsonIgnoreProperties(value={"photos"})    
public class Album implements java.io.Serializable { 

你可能感兴趣的:(json)