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

Ktor项目JSON序列化报错:Unresolved reference: json 求助

解决Ktor中"Unresolved reference: json"错误及插件与依赖的区别

一、修复"Unresolved reference: json"错误

1. 补充缺失的导入

在你的代码文件顶部添加以下导入语句:

import io.ktor.serialization.kotlinx.json.json

你当前导入的io.ktor.serialization.*无法覆盖json()函数所在的子包,必须显式导入才能让IDE识别该函数。

2. 统一Ktor版本

创建或修改gradle.properties文件,确保所有Ktor相关依赖使用同一版本(和你插件版本2.3.11保持一致):

ktor_version=2.3.11
kotlin_version=1.9.24
logback_version=1.4.11

你的build.gradle.kts中部分依赖硬编码了版本号,其余依赖用变量引用,版本不一致会导致兼容性问题,引发方法找不到的错误。

3. 给数据类添加序列化注解

你的LoginData数据类需要@Serializable注解才能被Kotlinx序列化处理,否则接收JSON请求时会报错:

import kotlinx.serialization.Serializable

@Serializable
data class LoginData(val username: String, val password: String)

你已经在build.gradle.kts中启用了Kotlin序列化插件,这部分配置无需修改。

二、插件与依赖的区别(新手易懂版)

  • 依赖:是项目运行或编译时必须的代码库,比如Ktor核心功能、JSON序列化工具、数据库驱动等,相当于组装电脑需要的CPU、内存这类核心零件,在dependencies块中声明,Gradle会自动下载引入。
  • 插件:是辅助构建项目的工具,比如Ktor插件帮你打包服务器应用、生成配置;Kotlin序列化插件帮你处理@Serializable注解并生成序列化代码。它们不直接提供业务功能,相当于组装电脑时的螺丝刀、扳手,是提升构建效率的工具而非核心零件。

修正后的核心代码片段

package com.example

import com.example.plugins.*
import io.ktor.http.content.*
import io.ktor.serialization.kotlinx.json.json
import io.ktor.server.application.*
import io.ktor.server.plugins.contentnegotiation.*
import io.ktor.server.request.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
import kotlinx.serialization.Serializable
import org.slf4j.LoggerFactory

fun main(args: Array<String>) {
    io.ktor.server.netty.EngineMain.main(args)
}

fun Application.module() {
    configureSerialization()
    configureDatabases()
    configureMonitoring()
    configureHTTP()
    configureSecurity()
    configureRouting()
}

@Serializable
data class LoginData(val username: String, val password: String)

fun Application.configureSerialization() {
    install(ContentNegotiation) { json() }
}

// 其余路由代码保持不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 17:37:31