我通过 MappingJacksonHttpMessageConverter 使用带有 Hibernate/Spring MVC 的 jackson 1.9.2。
Jackson 无法序列化双向的一对多关系,造成无限循环。
我正在使用的课程是:
具有一组 SMS 实例的对话。
每个 SMS 实例都有一组电话号码
每个 PhoneNumber 都有一个父联系人(这是双向多对一关系)
我想要做的是序列化对话。
如果我不使用@JsonManagedReference和@JsonBackReference ,那么jackson 将由于无限循环而崩溃。但是当我使用它们时,联系人不会被序列化为PhoneNumber。
班级联系{ @JsonManagedReference List<PhoneNumber> phoneNumber ; } 类电话号码 { @JsonBackReference 联系方式; }
输出是:
{ <--------------------- 对话 “身份证”:51, “短信集”:[ { “身份证”:53, “起源”:0123465, “目的地”:“06533844XY”, "message": "你好世界!", “电话号码”: [ { “身份证”:64, "num": "06533844XY", “创作日期”:1333992533000, } ], } ], “创作日期”:1333992534000 }
代替
{ <--------- 对话 “身份证”:51, “短信集”:[ { “身份证”:53, “起源”:0123465, “目的地”:“06533844XY”, "message": "你好世界!", “电话号码”: [ { “身份证”:64, "num": "06533844XY", “创作日期”:1333992533000, "联系人": <--------------------- 缺少的部分 { “身份证”:12, “名称”:“塞缪尔杰克逊”, “primaryNumber”:“06533844XY” } } ], } ], “创作日期”:1333992534000 }