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

时间:2019-12-25 07:49:57

标签: java xml jackson xml-parsing

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

XML:

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

Java类:

public class MyObject {

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

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

 // Constructor, Getter, Setter
}

问题出在id xml标记中,其中提到了type="integer"。如果我删除type="integer",它将非常正常。

1 个答案:

答案 0 :(得分:0)

只需使用@JacksonXmlRootElement批注,如:

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

您的课程应该是这样的:

public class MyObject {

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

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

 // Constructor, Getter, Setter
}