gpt4 book ai didi

java - Jackson 忽略 XmlAccessorType.NONE

转载 作者:行者123 更新时间:2023-12-01 10:35:14 25 4
gpt4 key购买 nike

我的 pojo 类用 XmlAccessorType.NONE 进行注释。

@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
public class Human {

@XmlElement(name="name")
private String name;

private int age

}

我尝试读取的 JSON 包含属性名称和年龄。如果我用 JsonIgnoreProperties(ignoreUnknown = true) 注释该类,一切正常但是,如果我尝试使用注释 XmlAccessorType(XmlAccessType.NONE) 代替, jackson 会抛出未知属性异常。

我尝试将 JaxbAnnotationIntrospector 添加到 objectmapper 中,但没有帮助 mapper.setAnnotationIntrospector(new JaxbAnnotationIntrospector());

最佳答案

我不明白为什么 XmlAccessorType(XmlAccessType.NONE) 与这里相关,它会影响可用属性的发现(无自动发现),但不会影响如何处理没有 Bean 属性的 JSON/XML 属性。

这里的差异可能更多地是由于 JAXB 和 Jackson 的默认值之间的差异造成的:默认情况下,JAXB 会默默地忽略它无法识别的任何内容。默认情况下,Jackson 在无法识别某些内容时会抛出异常。

如果需要,您可以配置ObjectMapper默认忽略这些问题:

napper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

因此该行为与 JAXB 的行为类似。

关于java - Jackson 忽略 XmlAccessorType.NONE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34790532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com