我要处理一个如下所示的复杂initial.json
:
{
"id": "ID123",
"mapJobProfiles": {
"23": {
"Cineca": {
"large": {
"cm": 8,
"cr": 8,
"mavg": 8.235,
"mmax": 17.541,
"nm": 65,
"nr": 5,
"ravg": 0.297,
"rmax": 0.499,
"sh1max": 0,
"shtypmax": 20.141,
"shtypavg": 14.721
}
}
}
}
}
它的类有2个属性:
private String id;
private JobProfilesMap mapJobProfiles;
JobProfilesMap是一个具有单一属性的POJO:
Map<String,Map<String, Map<String, JobProfile>>> mapJobProfile
我有一个附加约束,我要避免将“mapJobProfile”作为JobProfilesMap()的属性名称。
为了实现这一点,由于注释@jsonunwrapped不适用于Map,我已添加到JobProfilesMap:
`@JsonAnyGetter
public Map<String, Map<String, Map<String, JobProfile>>> getMapJobProfile(){
return mapJobProfile;
}`
(通过仅测试JobProfilesMap反序列化正确工作)
但是我得到了
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "23" ...
not marked as ignorable (one known property: "mapJobProfile"])
如果我尝试反序列化initial.json
。
如果我没有删除“mapJobProfile”属性名称,那么jackson正确处理整个initial.json
的反序列化,是否可以实现删除属性并且不添加自定义反序列化器的相同结果?