Library
gradle:
implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-csv")
You don’t need to specify the version in normally spring boot project, because your parent dependency already has it.
Code
val schema = CsvSchema.emptySchema().withHeader()
val mapper: ObjectReader = CsvMapper().readerFor(MyEntity::class.java).with(schema)
mapper.readValues<MyEntity>(csvJson).readAll()
In MyEntity
, you don’t need any other annotations, just normal fasterxml
annotations is enough:
class MyEntity{
@JsonProperty("first_string")
var firstString: String? = null
@JsonProperty("second_string")
var secondString: String? = null
@JsonProperty("third_date")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai")
var thirdDate: Date? = null
}