Json 如何告诉Jackson通过字段序列化对象并忽略属性?
我希望在Jackson的Spring Boot中通过JAXB注释将对象序列化为JSON和XML 看看这些:Json 如何告诉Jackson通过字段序列化对象并忽略属性?,json,xml,spring-boot,jaxb,jackson,Json,Xml,Spring Boot,Jaxb,Jackson,我希望在Jackson的Spring Boot中通过JAXB注释将对象序列化为JSON和XML 看看这些: public interface Permission { boolean isAllowed(); boolean isExpired(); } @XmlType @XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) public class UserPermissionDto implements Permi
public interface Permission {
boolean isAllowed();
boolean isExpired();
}
@XmlType
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class UserPermissionDto implements Permission {
@XmlElement
protected boolean enabled;
public boolean isEnabled() {
return enabled;
}
public boolean setEnabled(boolean enabled) {
this.enabled = enabled;
}
public boolean isAllowed() {
return enabled;
}
public boolean isExpired() {
return enabled;
}
}
我希望看到userpermissionto
序列化而不使用allowed
和expired
属性
我已经尝试过通过Jackson2ObjectMapperBuilder来定制ObjectMapper
,添加了JaxbAnnotationIntrospector
,并将autoDetectGettersSetters
设置为false
,但同样的问题仍然存在
@Bean
@Primary
public ObjectMapper objectMapper() {
Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder;
jackson2ObjectMapperBuilder = new Jackson2ObjectMapperBuilder();
return jackson2ObjectMapperBuilder
.annotationIntrospector(new JaxbAnnotationIntrospector(TypeFactory.defaultInstance()))
.autoDetectGettersSetters(false)
.build();
}
我不明白为什么@xmlacessortype(xmlacesstype.FIELD)
不起作用。请告知。用于在序列化和反序列化期间忽略属性
用于在XML封送/解封期间忽略属性。我希望继续使用JAXB注释。是否有一种方法可以自动推断它,因为我已经指定了
@XmlAccessorType(XmlAccessType.FIELD)
?@XmlAccessorType
指定是否序列化字段或属性。这并不意味着忽视XmlAccessType.FIELD
表示仅序列化字段,XmlAccessType.PROPERTY
表示仅序列化/反序列化属性getter/setter。阅读详细信息。是的,但在我的课堂上,只有enabled
字段存在。因此,我假设只应序列化enabled
字段,不包括allowed
和expired
属性。请尝试@xmlacessortype(xmlacesstype.NONE)
,它将只序列化带注释的字段。