【发布时间】:2018-12-27 19:11:25
【问题描述】:
我想在 JAVA 中将 XML 子树反序列化为字符串(使用 Jackson):
输入结构:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<nodeA>text</nodeA>
<nodeB>
<nodeS>
<nodeS1>...</nodeS1>
<nodeS2>...</nodeS2>
</nodeS>
</nodeB>
</root>
变成这样的:
public class Pojo {
@JacksonXmlProperty(localName="nodeA")
private String nodeA; // = "text"
@JacksonXmlProperty(localName="nodeB")
@JsonDeserialize(using = MyXmlDeserializer.class)
private String nodeB; // = "<nodeS><nodeS1>...</nodeS1><nodeS2>...</nodeS2></nodeS>"
}
节点 nodeS 应被视为“原始值”,无需对 xml 进行任何修改,并将其放入 String 类成员中。 我用自定义反序列化器或@JacksonRawValue 尝试过,但无济于事。
如果可以访问“currentNode”的原始值,那将有很大帮助。
欢迎任何替代(杰克逊相关)解决方案:-)
【问题讨论】:
-
您为什么认为 JSON 反序列化器会对解析 XML 产生任何影响?
-
@Andreas:我正在使用 XmlMapper (jackson-dataformat-xml)
标签: java jackson jackson-databind jackson-dataformat-xml