在 Kotlin 中解析没有数据类的 JSON?

Kur*_*iyu 11 json kotlin

Kotlin 中有很多 JSON 解析器,比如 Forge、Gson、JSON、Jackson...但是它们将 JSON 反序列化为数据类,这意味着需要定义一个具有与 JSON 对应的属性的数据类,这对于每个 JSON具有不同的结构。

但是,如果您不想为必须解析的每个 JSON 定义数据类怎么办?

我想要一个不使用数据类的解析器,例如它可能是这样的:

val jsonstring = '{"a": "b", "c": {"d: "e"}}'

parse(jsonstring).get("c").get("d") // -> "e"
Run Code Online (Sandbox Code Playgroud)

只是不需要我编写像这样的数据类

data class DataClass (
    val a: String,
    val b: AnotherDataClass
)

data class AnotherDataClass (
    val d: String
)
Run Code Online (Sandbox Code Playgroud)

它非常重,对我的用例没有用。

这样的图书馆存在吗?谢谢!

Мих*_*аль 9

kotlinx.serialization您可以将 JSON 字符串解析JsonElement为:

val json: Map<String, JsonElement> = Json.parseToJsonElement(jsonstring).jsonObject
Run Code Online (Sandbox Code Playgroud)