【发布时间】:2021-06-08 14:00:37
【问题描述】:
我在 Kotlin 中有一个像这样的(数据)类。
在使用活动 Spring 配置文件 live 运行应用程序时,我只想返回 name。
但是使用活动 Spring 配置文件 test 运行应用程序,我希望显示 version,这样我就可以测试我是否获得了正确的版本。
data class MyClass(
val name: String
@JsonIgnore
val version: Number
)
有可能吗?
【问题讨论】:
-
我认为不可能,你可以使用@JsonProperty 并使用不同的json键来设置版本。但是您的用例不清楚,请提供一些您需要它的上下文。
-
uzxmx.github.io/add-or-remove-java-annotation-at-runtime.html 等;如果注释本身不支持某种形式的运行时自省,那么它本质上是不平凡的。 IIRC Jackson 确实通过
JacksonAnnotationIntrospector提供了某种形式(或至少提供了),但它可能需要修改对象映射器代码。 -
@RDK - 用例是:当我通过 REST 返回
MyClass时,我不希望显示version。但我需要验证它是我测试中的正确版本。 (更长的故事......这是简短的版本。)
标签: java json kotlin jackson fasterxml