我的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)intead,则jackson会抛出未知属性异常。
我尝试将JaxbAnnotationIntrospector添加到objectmapper中,但它没有帮助mapper.setAnnotationIntrospector(new JaxbAnnotationIntrospector());
答案 0 :(得分:1)
我不明白为什么static
与此相关,
它会影响可用属性的发现(无自动发现),但不会影响如何处理没有Bean属性的JSON / XML属性。
这里的差异可能更多是由于JAXB和Jackson的默认值之间的差异:默认情况下,JAXB默默地忽略它无法识别的任何内容。默认情况下,杰克逊在不认识某事时抛出异常。
如果需要,您可以将XmlAccessorType(XmlAccessType.NONE)
配置为默认忽略这些问题:
napper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
这样的行为类似于JAXB。