我正在尝试将一些数据类公开为 JSON 对象,但有些东西不起作用。
我有以下数据类:
data class Link(
@JsonProperty("rel")
@JsonView(View.Bind::class)
val rel: String,
@JsonProperty("method")
@JsonView(View.Bind::class)
val method: HttpMethod,
@JsonProperty("href")
@JsonView(View.Bind::class)
val href: String)
data class MetaData(val status: HttpStatus) {
@JsonView(View.Bind::class)
@JsonProperty("status_code")
fun getStatusCode(): Int {
return status.value()
}
@JsonView(View.Bind::class)
@JsonProperty("status_desc")
fun getStatusDesc(): String {
return status.name
}
}
data class Payload(
@JsonView(View.Bind::class)
@JsonProperty("payload")
val payload: Any,
@JsonProperty("_meta")
@JsonView(View.Bind::class)
val metaData: MetaData,
@JsonProperty("_links")
@JsonView(View.Bind::class)
val links: List<Link>)
并且由于某种原因,当 Payload 类是 JAVA 类时,一切正常,但当它是 kotlin 类时,只有有效负载元素进入 JSON。
对于依赖,我正在使用:
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.0.1-1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-kotlin</artifactId>
<version>2.7.1-2</version>
</dependency>
如果我将“_meta”和“_links”更改为“meta”和“links”,则会呈现“links”元素。