jackson 抽象JAVA类Map的反序列化问题

f4t66c6m  于 2022-11-08  发布在  Java
关注(0)|答案(2)|浏览(180)

我正在尝试将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反序列化器来实现这个吗?

vlurs2pr

vlurs2pr2#

我已经试着按照@user3296624的建议使用@JsonUnwrapped。但是它不起作用。jackson-databind上有一个与此相关的未决问题。Issue
我也试过@JsonAnySetter,但没有用。
因此,将我的请求模型修改为private Map<String, Object> details,并放弃了AbstractFamilyDetails作为最后的手段,并相应地使用它。这不是一个理想的解决方案。但工作。

相关问题