Java Jackson不匹配InputException无字符串参数构造函数/工厂方法从字符串值反序列化

Java Jackson不匹配InputException无字符串参数构造函数/工厂方法从字符串值反序列化,java,json,jackson,illegalargumentexception,objectmapper,Java,Json,Jackson,Illegalargumentexception,Objectmapper,我有一个json示例: Object json = "{\"known1\":\"m1234\",\"known2\":1,\"known3\":2,\"unknown1\":true,\"unknown2\":15}" 我的Pojo类如下所示: @Data @AllArgsConstructor @NoArgsConstructor @Builder p

我有一个json示例:

Object json = "{\"known1\":\"m1234\",\"known2\":1,\"known3\":2,\"unknown1\":true,\"unknown2\":15}"
我的Pojo类如下所示:

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class MyPojo implements Serializable {
   private String known1;
   private String known2;
   private String known3;
   
   private Map<String, Object> unknownFields;

@JsonAnySetter
public void setDynamicAttributes(String key, Object value) {
    if (this.unknownFields == null) {
        this.unknownFields = new HashMap<>();
    }
    this.unknownFields.put(key, value);
}}
我得到一个例外:

Exception in thread "main" java.lang.IllegalArgumentException: Cannot construct instance of `com.model.MyPojo` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('{"known1":"m1234","known2":1,"known3":2,"unknown1":true,"unknown2":15}')
但是当我使用

Object jsonString = "{\"known1\":\"m1234\",\"known2\":1,\"known3\":2,\"unknown1\":true,\"unknown2\":15}";
    MyPojo poco = new ObjectMapper().**readValue**(jsonString.toString(), MyPojo.class);
    System.out.println(screenInfo);
我得到了预期的输出,并且未知字段填充在unknownFields映射中。谁能解释一下原因吗?我还想让它与convertValue一起工作。请帮忙

Object jsonString = "{\"known1\":\"m1234\",\"known2\":1,\"known3\":2,\"unknown1\":true,\"unknown2\":15}";
    MyPojo poco = new ObjectMapper().**readValue**(jsonString.toString(), MyPojo.class);
    System.out.println(screenInfo);