java - 使用 Jackson 解析 XML 时如何忽略特定节点
问题描述
我想知道在使用 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:属性“值”的设置器定义冲突
解决方案
尝试以下操作:
@JsonIgnoreProperties(ignoreUnknown = true)
public class Bundle {
...
}
或者:
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
推荐阅读
- python - Asyncio:从另一个未来运行未来而不等待它
- heroku - 为什么在将 TZ 环境变量设置为另一个时区后 Heroku 记录时间戳为 UTC?
- java - 将固定数量的 Optional 连接到 Stream
- python - 尝试对列表进行排序,使相同的字母不相邻但错误:超出范围
- scala - 如何从元组类型中提取类型?
- azure - 如何使用 SSIS 包从网络驱动器读取数据?
- azure - 是否可以从 Azure 数据工厂访问 Databricks DBFS?
- javascript - 在轮播导航点击更改背景图像
- delphi - 根据角度、速度和起始位置计算位置
- java - Spring reactor - 如何正确抛出异常?