在反序列化期间重复的字段

时间:2016-02-27 16:08:01

标签: java json jackson

我有一个看起来像这样的课程:

public class Item {
private ItemHeader header;
private ItemBody body; 
}

public class ItemHeader {
private int id;
private String name;  
}
public class ItemBody {
private List<String> values;
private List<String> details;

}

ItemHeader和ItemBody的字段可以通过Item类中的setter和getter以及相应的类来访问。所有表示setter和getters EXCEPT get / setItemBody + get / setItemHeader都用@JsonIgnore注释。

当GET REST方法返回Item实例时,Response看起来如下:

    {
  "body": {
    "details":[]
    "values":[]
  },
  "header": {
    "id": 145,
    "name": "name_of_item",
   },
    "details":[],
    "values":[],
    "id": 145,
    "name": "name_of_item"    
}

itemHeader和itemBody的内部结构溢出两次到反序列化的Json中,一次(正确地)在相应的字段内,第二次在它们之外。

我对幕后的Jackson定义没有多少控制权,基本上只能用注释等来控制我的类层次结构。

请告知 - 如何删除重复,“溢出”值......

1 个答案:

答案 0 :(得分:0)

我最终删除了解决问题的双层getter / setter,并且在此过程中发现确实,序列化路径和de-path使用了不同的库。所以https://stackoverflow.com/users/2513573/adamskywalker有正确的想法