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 楼答案
我不明白为什么
XmlAccessorType(XmlAccessType.NONE)
会与此相关, 它会影响可用属性的发现(没有自动发现),但不会影响如何处理没有Bean属性的JSON/XML属性这里的差异可能更多地是由于JAXB和Jackson的默认值之间的差异:默认情况下,JAXB会默默地忽略它无法识别的任何内容。默认情况下,Jackson在无法识别某些内容时抛出异常
如果需要,可以将
ObjectMapper
配置为默认情况下忽略这些问题:打盹儿。禁用(反序列化功能。在未知属性上失败)
因此,这种行为类似于JAXB