我通过 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
}