jackson xml将单个xml标记反序列化到对象

b0zn9rqh  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(446)

我想反序列化此xml标记:

<source>Test</source>

进入一个对象(某个java类)。
我有下一节课:

public class SomeXml{
  private String source;
}

我用jackson xml进行反序列化:

XmlMapper mapper = new XmlMapper();
SomeXml data = mapper.readValue("<source>Test</source>", SomeXml.class);
System.out.println(data);

但它给了我下一个错误:
com.fasterxml.jackson.databind.exc.unrecognizedpropertyexception:unrecognized字段“”(class com.test.somexml),未在[source:(stringreader)处标记为可忽略(一个已知属性:“source”]);行:1,列:31](通过引用链:com.test.somexml[“”)
那么,如何将单个xml标记反序列化为对象/pojo呢?
感谢您的帮助!!

stszievb

stszievb1#

那个xml是一个 String ,不是(Jackson的)对象。。相反,您应该用另一个包含该字符串(即属性)的标记(即您的对象)将其包围

XmlMapper mapper = new XmlMapper();
SomeXml data = mapper.readValue("<myObj><source>Test</source></myObj>", SomeXml.class);
System.out.println(data);

要检查我前面说过的内容,您可以检查此代码是否正常工作:

XmlMapper mapper = new XmlMapper();
String data = mapper.readValue("<source>Test</source>", String.class);
System.out.println(data);

相关问题