我从服务接收到一个相当深的 JSON 对象字符串,我必须将其解析为 JSON 对象,然后将其映射到类。
如何将 JSON 字符串转换为 Kotlin 中的对象?
在映射到各个类之后,我使用了 Jackson 的 StdDeserializer。当对象具有也必须反序列化为类的属性时,问题就出现了。我无法在另一个反序列化器中获取对象映射器,至少我不知道如何获取。
最好,在本机上,我尝试减少所需的依赖项数量,因此如果答案仅用于 JSON 操作和解析就足够了。
毫无疑问,Kotlin 解析的未来将是 kotlinx.serialization。它是 Kotlin 库的一部分。 kotlinx.serialization 1.0版本终于发布
https://github.com/Kotlin/kotlinx.serialization https://github.com/Kotlin/kotlinx.serialization
import kotlinx.serialization.*
import kotlinx.serialization.json.JSON
@Serializable
data class MyModel(val a: Int, @Optional val b: String = "42")
fun main(args: Array<String>) {
// serializing objects
val jsonData = JSON.stringify(MyModel.serializer(), MyModel(42))
println(jsonData) // {"a": 42, "b": "42"}
// serializing lists
val jsonList = JSON.stringify(MyModel.serializer().list, listOf(MyModel(42)))
println(jsonList) // [{"a": 42, "b": "42"}]
// parsing data back
val obj = JSON.parse(MyModel.serializer(), """{"a":42}""")
println(obj) // MyModel(a=42, b="42")
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)