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;