【发布时间】:2019-01-16 04:25:51
【问题描述】:
我想知道在使用 Jackson ML 模块解析 XML 时是否可以忽略一个或多个节点。
我希望能够解析这个 XML
<bundle>
<id value="myBundleId"/>
<meta>
<profile value="http://myurl/profile1" />
<profile value="http://myurl/profile2" />
<tag>
<system value="https://myurl/system" />
<code value="myAppCode"/>
</tag>
</meta>
<type value="message" />
</bundle>
进入这个 POJO 对象
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import lombok.Data;
@Data
public class Bundle {
@JacksonXmlElementWrapper(localName = "id")
@JacksonXmlProperty(isAttribute = true, localName = "value")
private String id;
@JacksonXmlElementWrapper(localName = "type")
@JacksonXmlProperty(isAttribute = true, localName = "value")
private String type;
}
现在它不起作用,因为我认为注释 @JacksonXmlElementWrapper 仅适用于列表。
它还给了我以下错误消息:
java.lang.IllegalArgumentException:冲突的 setter 定义 属性“值”
【问题讨论】:
-
尝试将您的字段转换为属性并将其公开。
-
嗯,你到底是什么意思?我必须补充一点,不幸的是 XML 无法修改,因为它是由外部方提供的。
标签: java xml jackson jackson-dataformat-xml