需求
将一组 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 聊聊, 查看更多联系方式