【问题标题】:Cannot deserialize instance of `com.example.million.model.Domain` out of START_ARRAY token无法从 START_ARRAY 令牌中反序列化“com.example.million.model.Domain”的实例
【发布时间】:2020-07-07 12:33:55
【问题描述】:

我正在使用 Kotlin、Spring Boot、Jackson 数据格式 csv。不确定,如何从我的 csv 中返回响应作为域对象列表。我有以下错误 无法从 START_ARRAY 令牌中反序列化 com.example.million.model.Domain 的实例

我的代码如下:

@Service
class DomainService {
    fun getDomains(): List<Domain> {


        val mapper = CsvMapper()
        mapper.enable(CsvParser.Feature.WRAP_AS_ARRAY)
        val csvFile = File("myCsv.csv")
        val response: List<Domain> = mapper.readerFor(Domain::class.java).readValues<Domain>(csvFile).readAll()
        return response
    }
}

data class Domains(var domain: String){}

【问题讨论】:

    标签: spring list csv kotlin jackson


    【解决方案1】:

    删除此行,否则您会将每个 csv 行包装在一个数组中,这会导致您的错误消息。

    mapper.enable(CsvParser.Feature.WRAP_AS_ARRAY)
    

    否则您的代码看起来不错。

    【讨论】:

    • 不幸的是,我尝试了这个并试图修复下一个错误: Kotlin Jackson no String-argument constructor/factory method to deserialize from String value ('GlobalRank') it's one of the row in my csv file
    • 不过,这看起来更好。您需要为您的问题添加更多代码/描述。添加一个完整的 csv 行,包括列标题 + 您可能在域类中放置的任何 jackson 注释。
    猜你喜欢
    • 2020-09-23
    • 1970-01-01
    • 2016-07-30
    • 2015-03-10
    • 2019-10-25
    • 2015-12-24
    • 2018-12-03
    • 2011-12-02
    • 2021-03-16
    相关资源
    最近更新 更多