Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何告诉Jackson通过字段序列化对象并忽略属性?_Json_Xml_Spring Boot_Jaxb_Jackson - Fatal编程技术网

Json 如何告诉Jackson通过字段序列化对象并忽略属性?

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

我希望在Jackson的Spring Boot中通过JAXB注释将对象序列化为JSON和XML

看看这些:

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)
,它将只序列化带注释的字段。