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

Kotlin+SpringBoot项目中Gson自定义@Exclude注解不生效问题排查

问题分析与解决方案

针对你在Kotlin SpringBoot项目中使用Gson自定义@Exclude注解失效的问题,常见原因及对应解决方法如下:

1. 自定义注解未设置运行时保留策略

如果你的@Exclude注解没有指定@Retention(RetentionPolicy.RUNTIME),编译后注解信息会被直接丢弃,导致Gson在运行时无法读取到该注解。

解决方法:在自定义注解上添加运行时保留策略:

@Retention(RetentionPolicy.RUNTIME)
annotation class Exclude

2. Kotlin注解目标未明确指向字段

Kotlin中直接在val/var属性上添加注解,默认会将注解绑定到属性的getter方法而非字段本身,而Gson的ExclusionStrategy是通过读取字段上的注解来判断是否跳过的。

解决方法:使用@field:限定符,明确将注解标注在字段上:

data class Order(
    val external: Boolean,
    val orderNumber: String,
    val companyName: String,
    @field:Exclude val vatCode: String,
)

3. 确认Gson实例的使用正确性

确保你在序列化/反序列化操作时,确实使用了配置好排除策略的Gson实例,而非默认的Gson()实例。示例:

// 使用配置后的gson实例进行序列化
val order = Order(true, "ORD123", "Acme Corp", "VAT001")
val json = gson.toJson(order)
// 此时vatCode字段会被正确排除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 20:25:54