Kotlin JSON 序列化

更新日期: 2024-05-21 阅读次数: 1098 字数: 255 分类: Kotlin

需求

将一组 key / value 的数据,生成 json 序列化后的字符串,然后上传到服务器后台。

参考

kotlin 官方文档:

https://book.kotlincn.net/text/serialization.html

大致逻辑就是,先定义一个 data class,然后执行序列化操作。

代码示例

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

@Serializable
data class Data(val age: Int, val name: String)

fun main() {
   val json = Json.encodeToString(Data(18, "大象"))
}

异常

SerializationStrategy<TypeVariable(T)> was expected

注意,如果不引入:

import kotlinx.serialization.encodeToString

就会报异常。

异常2

遇到警告信息:

kotlinx.serialization compiler plugin is not applied to the module, so this annotation would not be processed. Make sure that you've setup your buildscript correctly and re-import project.

除了依赖,还需要增加插件的依赖:

项目级的 build.gradle

id 'org.jetbrains.kotlin.plugin.serialization' version '1.9.24'

模块级的 build.gradle

plugins {
    id 'org.jetbrains.kotlin.plugin.serialization'
}

但是忽略这个警告,依然可以通过编译,只是在运行时会报异常,并崩溃。。。

kotlinx.serialization.SerializationException: Serializer for class 'Data' is not found. Please ensure that class is marked as '@Serializable' and that the serialization compiler plugin is applied.

微信关注我哦 👍

大象工具微信公众号

我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式