Kotlin:
使用JSON进行编程
如何操作:
Kotlin 没有内置对 JSON 的支持,但利用了第三方库的强大功能,如 Google 的 Gson
和 JetBrains 的 Kotlinx.serialization
。以下是如何使用这两者来处理 JSON。
使用 Gson
添加 Gson 依赖到你的 build.gradle
文件中:
implementation 'com.google.code.gson:gson:2.8.9'
将 JSON 字符串解析为对象,反之亦然:
import com.google.gson.Gson
// 定义一个数据类
data class User(val name: String, val age: Int)
fun main() {
val gson = Gson()
// 序列化
val json = gson.toJson(User("John Doe", 30))
println(json) // 输出:{"name":"John Doe","age":30}
// 反序列化
val user: User = gson.fromJson(json, User::class.java)
println(user) // 输出:User(name=John Doe, age=30)
}
使用 Kotlinx.serialization
首先,将依赖项包含在你的 build.gradle
中:
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.3"
之后,在构建脚本的顶部应用 kotlinx-serialization
插件:
plugins {
kotlin("jvm") version "1.6.10"
kotlin("plugin.serialization") version "1.6.10"
}
使用 Kotlinx.serialization 进行序列化和反序列化:
import kotlinx.serialization.*
import kotlinx.serialization.json.*
// 定义一个可序列化的数据类
@Serializable
data class User(val name: String, val age: Int)
fun main() {
// 序列化
val json = Json.encodeToString(User("Jane Doe", 28))
println(json) // 输出:{"name":"Jane Doe","age":28}
// 反序列化
val user = Json.decodeFromString<User>(json)
println(user) // 输出:User(name=Jane Doe, age=28)
}
Gson 和 Kotlinx.serialization 都简化了在 Kotlin 应用程序中处理 JSON 的工作,选择其中之一取决于你的特定项目需求和个人喜好。