我正在尝试将HTTP请求发送到接受以下格式的JSON请求主体的API
{
"firstName" : "XYZ",
"family" : {
"commonDetails" : {
"secondName" : "ABC"
},
"1" : "Mother name",
"2" : "Father name",
"3" : "Spouse name"
}
}
所以我用下面的方法定义了一个请求负载。
第一个
但是当我调试json负载时,我用它来攻击服务器,结果是
{
"firstName" : "XYZ",
"family" : {
"commonDetails" : {
"secondName" : "ABC",
},
"1" : {"individual": "Mother name"},
"2" : {"individual": "Father name"},
"3" : {"individual": "Spouse name"}
}
}
我哪里做错了?我必须定义一个自定义的Jackson反序列化器来实现这个吗?
2条答案
按热度按时间bkhjykvo1#
在
individual
字段上尝试@JsonUnwrapped
注解。请参阅:https://fasterxml.github.io/jackson-annotations/javadoc/2.8/com/fasterxml/jackson/annotation/JsonUnwrapped.html
vlurs2pr2#
我已经试着按照@user3296624的建议使用
@JsonUnwrapped
。但是它不起作用。jackson-databind上有一个与此相关的未决问题。Issue我也试过
@JsonAnySetter
,但没有用。因此,将我的请求模型修改为
private Map<String, Object> details
,并放弃了AbstractFamilyDetails
作为最后的手段,并相应地使用它。这不是一个理想的解决方案。但工作。