使用Kotlin的Gson注解

whlutmcx  于 4个月前  发布在  Kotlin
关注(0)|答案(1)|浏览(67)

我有一个使用Kotlin的SpringBoot项目,我正在使用Gson来读写JSON。我试图通过自定义注解来注解一些远离JSON的字段:

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

字符串
以下是我对战略的定义:

private final var strategy: ExclusionStrategy = object : ExclusionStrategy {
    override fun shouldSkipClass(clazz: Class<*>?): Boolean {
        return false
    }

    override fun shouldSkipField(field: FieldAttributes): Boolean {
        return field.getAnnotation(Exclude::class.java) != null
    }
}


在这里实现:

val gson = GsonBuilder().setExclusionStrategies(strategy).create()


但是它不起作用。似乎注解不能被策略函数识别/读取。可能是什么原因导致了这个问题?

cotxawn7

cotxawn71#

我花了一些时间才弄清楚这一点,因为我对Java和Kotlin都是新手。似乎要让你的annotation类在java中显示出来,你必须向annotation本身添加几个annotation。例如:

@Retention(value = AnnotationRetention.RUNTIME)
@Target(AnnotationTarget.FIELD)
annotation class NoSerialize()

字符串

相关问题