我从服务中接收到非常深的JSON对象字符串,我必须将其解析为JSON对象,然后将其映射到类。
如何在Kotlin中将JSON字符串转换为对象?
在映射到各个类之后,我使用了Jackson的StdDeserializer。当对象具有必须反序列化为类的属性时,就会出现问题。我无法在另一个反序列化器中获取对象映射器,至少我不知道该怎么做。
在此先感谢您的帮助。最好是在本地,我试图减少所需的依赖项数量,因此,如果答案仅是用于JSON操作并且解析就足够了。
您可以使用此库 https://github.com/cbeust/klaxon
Klaxon是一个轻量级的库,用于解析Kotlin中的JSON。
毫无疑问,在Kotlin中进行解析的未来将是kotlinx.serialization。它是Kotlin库的一部分。目前仍处于孵化器编写阶段。
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") }