kotlinx-serialization class 标记为@Serializable 没有.serializer() 扩展函数
kotlinx-serialization class marked @Serializable does not have the .serializer() extension function
我有以下数据class
@Serializable
data class Income(val id: String,
val description: String,
val amount: Int,
val Time: Date,
val userId: String)
现在当我尝试使用 .serializer() 函数时它说 .serializer() 没有为收入定义 class 所以我的项目没有编译。
val response = Json.stringify(Income.serializer(), Incomes)
call.respond(HttpStatusCode.OK,response)
我看了两遍 readme.md 中的文档。
甚至观看了来自 KotlinConf
的公告视频
有没有人遇到同样的问题。我做错了什么??
编辑:
我试图从 readme.md 中复制粘贴样本,但遇到了同样的问题。
import kotlinx.serialization.*
import kotlinx.serialization.json.*
@Serializable
data class Data(val a: Int, val b: String = "42")
fun main() {
// Json also has .Default configuration which provides more reasonable settings,
// but is subject to change in future versions
val json = Json(JsonConfiguration.Stable)
// serializing objects
val jsonData = json.stringify(Data.serializer(), Data(42))
// serializing lists
val jsonList = json.stringify(Data.serializer().list, listOf(Data(42)))
println(jsonData) // {"a": 42, "b": "42"}
println(jsonList) // [{"a": 42, "b": "42"}]
// parsing data back
val obj = json.parse(Data.serializer(), """{"a":42}""") // b is optional since it has default value
println(obj) // Data(a=42, b="42")
}
这在我的代码中编译得不好。
我目前正在使用 Kotlin 1.3..61 并且
kotlinx-序列化-运行时 0.14.0
除了 kotlinx-serialization-runtime
依赖项之外,您还需要 add the plugin
plugins {
kotlin("multiplatform") // or kotlin("jvm") or any other kotlin plugin
kotlin("plugin.serialization") version "1.4.10"
}
与 Kotlin 本身的版本相同。
我有一个类似的问题,我的导航抽屉 XML 文件无法识别我的可序列化 class,因为我必须自己扩展 java.io.Serializable
,有点适合 kotlin 它很好:
@Serializable
data class Income(val id: String,
val description: String,
val amount: Int,
val Time: Date,
val userId: String) : java.io.Serializable
我有以下数据class
@Serializable
data class Income(val id: String,
val description: String,
val amount: Int,
val Time: Date,
val userId: String)
现在当我尝试使用 .serializer() 函数时它说 .serializer() 没有为收入定义 class 所以我的项目没有编译。
val response = Json.stringify(Income.serializer(), Incomes)
call.respond(HttpStatusCode.OK,response)
我看了两遍 readme.md 中的文档。 甚至观看了来自 KotlinConf
的公告视频有没有人遇到同样的问题。我做错了什么??
编辑:
我试图从 readme.md 中复制粘贴样本,但遇到了同样的问题。
import kotlinx.serialization.*
import kotlinx.serialization.json.*
@Serializable
data class Data(val a: Int, val b: String = "42")
fun main() {
// Json also has .Default configuration which provides more reasonable settings,
// but is subject to change in future versions
val json = Json(JsonConfiguration.Stable)
// serializing objects
val jsonData = json.stringify(Data.serializer(), Data(42))
// serializing lists
val jsonList = json.stringify(Data.serializer().list, listOf(Data(42)))
println(jsonData) // {"a": 42, "b": "42"}
println(jsonList) // [{"a": 42, "b": "42"}]
// parsing data back
val obj = json.parse(Data.serializer(), """{"a":42}""") // b is optional since it has default value
println(obj) // Data(a=42, b="42")
}
这在我的代码中编译得不好。 我目前正在使用 Kotlin 1.3..61 并且 kotlinx-序列化-运行时 0.14.0
除了 kotlinx-serialization-runtime
依赖项之外,您还需要 add the plugin
plugins {
kotlin("multiplatform") // or kotlin("jvm") or any other kotlin plugin
kotlin("plugin.serialization") version "1.4.10"
}
与 Kotlin 本身的版本相同。
我有一个类似的问题,我的导航抽屉 XML 文件无法识别我的可序列化 class,因为我必须自己扩展 java.io.Serializable
,有点适合 kotlin 它很好:
@Serializable
data class Income(val id: String,
val description: String,
val amount: Int,
val Time: Date,
val userId: String) : java.io.Serializable