kotlin: 使用Kotlin Serialization库

一,在项目中添加 Kotlin Serialization 插件和依赖

编辑libs.versions.toml,增加以下内容:

[versions]
kotlin = "2.0.21"
kotlinxSerializationJson = "1.9.0"

[libraries]
# kotlin json 序列化
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" }

[plugins]
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }

编辑build.gradle.kts,增加以下内容:

plugins {
    alias(libs.plugins.kotlin.serialization)
}

dependencies {
    // kotlin json 序列化
    implementation(libs.kotlinx.serialization.json)
}

二,代码

定义一个数据类

import kotlinx.serialization.Serializable
import kotlinx.serialization.SerialName
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json

@InternalSerializationApi
@Serializable
data class User(
    // @SerialName 注解允许我们自定义序列化后的字段名
    // 这在与后端 API 对接时特别有用,比如 MongoDB 默认使用 _id 作为主键
    @SerialName("_id")
    val id: Int,
    val name: String,
    val email: String
)

调用:

 //按钮点击
        binding.getJsonButton.setOnClickListener {
              // 创建测试数据
              val user = User(1, "谢广坤", "guangkun@google.com")

              // 序列化为 JSON 字符串
              // 注意这里直接使用 Json.encodeToString(user),不需要显式传入序列化器
              // 这是因为 @Serializable 注解会在编译期自动生成所需的序列化器
              val jsonString = Json.encodeToString(user)
              println("对象:"+user)
              println("json字串:${jsonString}")

三,运行结果:

image

posted @ 2025-09-06 22:07  刘宏缔的架构森林  阅读(66)  评论(0)    收藏  举报