サービスから非常に深い JSON オブジェクト文字列を受信しており、これを JSON オブジェクトに解析してクラスにマップする必要があります。
Kotlin で JSON 文字列をオブジェクトに変換するにはどうすればよいですか?
その後、それぞれのクラスにマッピングするために、Jackson の StdDeserializer を使用しました。問題は、オブジェクトにクラスにデシリアライズする必要のあるプロパティがあるときに発生します。別のデシリアライザー内でオブジェクト マッパーを取得できませんでした (少なくとも方法がわかりませんでした)。
できれば、ネイティブで、必要な依存関係の数を減らそうとしているので、答えが JSON の操作と解析だけであれば十分でしょう。
ベストアンサー1
Kotlinの解析の未来は間違いなくkotlinx.serializationにあります。これはKotlinライブラリの一部です。バージョンkotlinx.serialization 1.0がついにリリースされました。
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.encodeToString(MyModel.serializer(), MyModel(42))
println(jsonData) // {"a": 42, "b": "42"}
// serializing lists
val jsonList = Json.encodeToString(MyModel.serializer().list, listOf(MyModel(42)))
println(jsonList) // [{"a": 42, "b": "42"}]
// parsing data back
val obj = Json.decodeFromString(MyModel.serializer(), """{"a":42}""")
println(obj) // MyModel(a=42, b="42")
}