gpt4 book ai didi

json - 如何使用 jackson 反序列化为 Kotlin 集合

转载 作者:IT老高 更新时间:2023-10-28 13:30:58 30 4
gpt4 key购买 nike

我想要的示例代码:

data class D(val a: String, val b: Int)
val jsonStr = """[{"a": "value1", "b": 1}, {"a": "value2", "b":"2}]"""
// what I need
val listOfD: List<D> = jacksonObjectMapper().whatMethodAndParameter?

最佳答案

使用 Jackson Kotlin 模块 current versions ,如果您导入完整的模块包或特定的扩展功能,您将拥有所有可用的扩展方法。如:

import com.fasterxml.jackson.module.kotlin.*  
val JSON = jacksonObjectMapper() // keep around and re-use
val myList: List<String> = JSON.readValue("""["a","b","c"]""")

因此,Kotlin 的 Jackson 模块将推断出正确的类型,您不需要 TypeReference 实例。

所以你的情况(稍微重命名并修复了数据类和 JSON):

import com.fasterxml.jackson.module.kotlin.readValue

data class MyData(val a: String, val b: Int)
val JSON = jacksonObjectMapper()

val jsonStr = """[{"a": "value1", "b": 1}, {"a": "value2", "b": 2}]"""
val myList: List<MyData> = JSON.readValue(jsonStr)

您也可以使用以下形式:

val myList = JSON.readValue<List<MyData>>(jsonStr)

不导入会报错,因为找不到扩展函数。

关于json - 如何使用 jackson 反序列化为 Kotlin 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33368328/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com