MismatchedInputException:无法从 START_OBJECT 令牌中反序列化 `java.lang.Integer` 的实例

MismatchedInputException: Cannot deserialize instance of `java.lang.Integer` out of START_OBJECT token

我正在尝试使用 XMLMapper 将 XML 反序列化为 Java 对象,但我正面临 MistmactchInputException

XML:

<author>
 <id type="integer">1234</id>
 <name>Hello World</name>
</author>

Java Class:

public class MyObject {

 @JacksonXmlProperty(localName = "id")
 private Integer id;

 @JacksonXmlProperty(localName = "name")
 private String name;

 // Constructor, Getter, Setter
}

问题出在 id xml 标记中,其中提到了 type="integer"。如果我删除 type="integer" 它工作得很好。

只需使用 @JacksonXmlRootElement 注释,例如:

    @JacksonXmlRootElement(localName = "id")
    @Data //for getters and setters
    public class Id {
    @JacksonXmlProperty(isAttribute=true)
    String type;
    @JacksonXmlText
    String text;
}

你的class应该是这样的:

public class MyObject {

 @JacksonXmlProperty(localName = "id")
 private Id id;

 @JacksonXmlProperty(localName = "name")
 private String name;

 // Constructor, Getter, Setter
}