JacksonCSVMap器未正确插入CSV文件内容(标题与值不匹配)?

zbdgwd5y  于 2023-03-10  发布在  其他
关注(0)|答案(1)|浏览(123)

我有一个CSV文件pets.csv

  1. NUMBER,NAME,TYPE
  2. 1,Jack,Dog
  3. 2,Russel,Cat
  4. 3,Great,Mouse

对于每个pets,我都有一个自定义类:

  1. @JsonPropertyOrder({ "NUMBER", "NAME", "TYPE" })
  2. public class Pet {
  3. public String number;
  4. public String name;
  5. public String type;
  6. }

然后在main类中,我希望将数据从pets.csv提取到List<Pet>中:

  1. public static void main(String[] args) throws IOException {
  2. List<Pet> pets = readFile(Path.of("pets.csv"));
  3. pets.forEach(pet -> System.out.println(pet.name));
  4. }
  5. public static List<Pet> readFile(Path csvFile) throws IOException {
  6. try(MappingIterator<Pet> petIter = new CsvMapper()
  7. .readerWithTypedSchemaFor(Pet.class).readValues(csvFile.toFile())) {
  8. return petIter.readAll();
  9. }
  10. }

然而,代替具有输出:

  1. NAME
  2. Jack
  3. Russel
  4. Great

我得到了:

  1. NUMBER
  2. 1
  3. 2
  4. 3

我做错了什么?:)

vojdkbi0

vojdkbi01#

在以下情况下重新创建并完美工作:

  1. @JsonPropertyOrder({ "number", "name", "type" })
  2. public class Pet {
  3. public String number;
  4. public String name;
  5. public String type;
  6. }

所以,把它们小写。希望这对你有帮助:)

相关问题