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

Quarkus中Kotlin REST端点无法返回JSON格式问题排查

问题原因及解决方案

核心原因

你遇到的问题是因为缺少Jackson对Kotlin的序列化支持依赖。Quarkus默认使用Jackson处理JSON序列化,但Kotlin的data class需要专门的Jackson模块来识别并正确序列化,否则框架会 fallback 调用对象的toString()方法,就出现了你看到的CatFact(fact=This is a cat, length=2)格式。

解决方案

根据你使用的RESTEasy类型(Reactive或传统),添加对应的Kotlin Jackson依赖:

如果你用的是RESTEasy Reactive

在你的pom.xml(Maven)中添加:

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-resteasy-reactive-jackson-kotlin</artifactId>
</dependency>

或者build.gradle.kts(Gradle):

implementation("io.quarkus:quarkus-resteasy-reactive-jackson-kotlin")

如果你用的是传统RESTEasy(非Reactive)

添加以下依赖:

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-resteasy-jackson-kotlin</artifactId>
</dependency>

或者Gradle:

implementation("io.quarkus:quarkus-resteasy-jackson-kotlin")

额外验证

  1. 你的CatFact类上的@JsonProperty注解可以保留(也可以去掉,Kotlin的data class属性名默认会被Jackson识别,除非你需要自定义JSON字段名)。
  2. 重新构建并运行Quarkus应用,访问/kotlin/catfact接口,就能得到正确的JSON响应:
{"fact": "This is a cat", "length": 2}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 18:12:08