【发布时间】:2018-08-15 18:08:50
【问题描述】:
我有以下想要反序列化为 Java POJO 的 XML。
<testdata>
<foo>
<bar>
<![CDATA[MESSAGE1]]>
</bar>
<bar>
<![CDATA[MESSAGE2]]>
</bar>
<bar>
<![CDATA[MESSAGE3]]>
</bar>
</foo>
</testdata>
我有以下 Java 类
public class TestData {
@JacksonXmlProperty(localName = "foo")
private Foo foo;
public Foo getFoo() {
return foo;
}
public void setFoo(Foo foo) {
this.foo = foo;
}
}
我还有一个像下面这样的课程
public class Foo {
@JacksonXmlProperty(localName = "bar")
@JacksonXmlCData
private List<String> barList;
public List<String> getBarList() {
return barList;
}
public void setBarList(List<String> barList) {
this.barList = barList;
}
}
现在当我使用下面的类运行代码时出现异常
private void readXml() throws FileNotFoundException, IOException {
File file = new File("/Users/temp.xml");
XmlMapper xmlMapper = new XmlMapper();
String xml = GeneralUtils.inputStreamToString(new FileInputStream(file));
TestData testData = xmlMapper.readValue(xml, TestData.class);
System.out.println(testData.getFoo()
.getBarList());
}
线程“主”com.fasterxml.jackson.databind.exc.MismatchedInputException 中的异常:无法将java.util.ArrayList 的实例反序列化出VALUE_STRING 令牌
如何将bar 元素转换为List?我尝试了多种方法,但我不断收到一些或其他错误
【问题讨论】: