You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus Rest Client序列化:如何替代@JsonIgnore忽略字段?

在Quarkus Rest Client请求体中忽略字段的解决方案

你的判断是对的——因为项目依赖了io.quarkus:quarkus-resteasy-reactive-jsonb:jar:2.7.5.Final,Quarkus会采用JSON-B(JSR 367)规范的序列化实现处理请求/响应,而非Jackson,所以Jackson的@JsonIgnore、@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)这类注解自然不会生效。

针对这个场景,你可以使用JSON-B对应的注解来实现字段忽略:

  • 完全忽略字段(请求体不包含,响应体也不解析该字段)
    在需要忽略的字段上添加javax.json.bind.annotation.JsonbTransient注解即可:

    public class RequestPayload {
        // 正常参与序列化/反序列化的字段
        private String userName;
        
        // 被忽略的字段,不会出现在请求体中,也不会从响应体解析
        @JsonbTransient
        private String sensitiveInfo;
        
        // getter、setter方法
    }
    
  • 仅在请求体中忽略(响应体仍可解析该字段)
    如果需要该字段能在接收响应时被解析,但发送请求时不包含在请求体里,可以使用@JsonbProperty并指定访问类型为READ_ONLY:

    public class RequestPayload {
        private String userName;
        
        // 仅在反序列化(读取响应)时生效,序列化(生成请求体)时被忽略
        @JsonbProperty(access = JsonbProperty.Access.READ_ONLY)
        private String responseOnlyField;
        
        // getter、setter方法
    }
    

内容的提问来源于stack exchange,提问作者WesternGun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 22:01:16