Jackson:将 map<String,Object> 反序列化为自定义嵌套 Pojo
Jackson: Deserialize map<String,Object> to Custom nested Pojo
我有一个简单的 Map<String,String>
,我想将它反序列化为带有一些内部嵌套 类.
的 Pojo
地图示例:
地图=["fname"="test","lname"="test"]
Pojo 代码片段:
class CustomPojo {
private Username username;
static class Username {
private String fname;
private String lname;
@JsonCreator
public Username(@JsonProperty("fname") String fname,
@JsonProperty("lname") String lname) {
this.fname = fname;
this.lname = lname;
}
}
调用代码:
CustomPojo pojo = new ObjectMapper().convert(map, CustomPojo.class);
它失败了,因为它在地图中没有 "Username" 的任何映射。
是否有仅使用注释来解决此问题的好方法?
使用@JsonUnwrapped
注释:
@JsonUnwrapped
private Username username;
我有一个简单的 Map<String,String>
,我想将它反序列化为带有一些内部嵌套 类.
地图示例: 地图=["fname"="test","lname"="test"]
Pojo 代码片段:
class CustomPojo {
private Username username;
static class Username {
private String fname;
private String lname;
@JsonCreator
public Username(@JsonProperty("fname") String fname,
@JsonProperty("lname") String lname) {
this.fname = fname;
this.lname = lname;
}
}
调用代码:
CustomPojo pojo = new ObjectMapper().convert(map, CustomPojo.class);
它失败了,因为它在地图中没有 "Username" 的任何映射。
是否有仅使用注释来解决此问题的好方法?
使用@JsonUnwrapped
注释:
@JsonUnwrapped
private Username username;