有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Jackson正在忽略XmlAccessorType。没有一个

我的pojo类是用XmlAccessorType注释的。没有

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

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

    private int age

}

我试图读取的JSON包含属性name和age。如果我用JsonIgnoreProperties(ignoreUnknown=true)注释该类,那么一切都可以正常工作。但是,如果我尝试使用注释XmlAccessorType(XmlAccessType.NONE)intead,jackson会抛出未知属性异常

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


共 (1) 个答案

  1. # 1 楼答案

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

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

    如果需要,可以将ObjectMapper配置为默认情况下忽略这些问题:

    打盹儿。禁用(反序列化功能。在未知属性上失败)

    因此,这种行为类似于JAXB