gpt4 book ai didi

json - 将 JSON 文件读取到 Object Kotlin

转载 作者:行者123 更新时间:2023-12-02 13:37:35 36 4
gpt4 key购买 nike

如何读取 JSON 文件,然后将其放入 @Document - MongoDB 模型中定义的对象中。
我正在寻找类似 Java 中的 jackson 对象映射器之类的东西。它在这里不起作用,因为 Documen - 模型没有空的构造函数。

@Document(collection = "XXX")
class Room(@Id
private val id: String?,
private val name: String){there is toString() method}


class Application{

@Bean
fun imageProcess(repo: MongoRepository) = CommandLineRunner {

println("----------------Save customers!")


for (room in read("C:/Users/Desktop/new.json")) {
repo.save(room)
}

}

val mapper = ObjectMapper().registerModule(KotlinModule())

fun read(path: String): Array<Room>? {

var temp: Array<Room>? = null
try {
temp = mapper.readValue(File(path), Array<Room>::class.java)
} catch (ex: IOException) {
ex.printStackTrace()
}

return temp

}

最佳答案

Jackson 应该与这个模块一起工作:https://github.com/FasterXML/jackson-module-kotlin

“以前 Kotlin 对象上必须存在默认构造函数,Jackson 才能反序列化到对象中。有了这个模块,可以自动使用单个构造函数类,并且还支持具有辅助构造函数或静态工厂的那些。”

import com.fasterxml.jackson.module.kotlin.*

data class MyStateObject(val name: String, val age: Int)

...
val mapper = jacksonObjectMapper()

val state = mapper.readValue<MyStateObject>(json)
// or
val state: MyStateObject = mapper.readValue(json)
// or
myMemberWithType = mapper.readValue(json)

关于json - 将 JSON 文件读取到 Object Kotlin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52880056/

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