2017-05-03 6 views
0

jackson-dataformat-csv로 .csv 파일을 구문 분석하려고합니다. 파일에 내 프로그램과 관련없는 많은 열이 포함되어 있습니다. jackson-dataformat-csv는 알 수없는 속성을 무시하지 않습니다.

내 데이터 클래스, 및 csvMapper.disable (DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)하지만, 어느 작품에 @JsonIgnoreProperties (ignoreUnknown = true)를 사용하려고하고, 응용 프로그램 예외가 발생합니다 :
com.fasterxml.jackson.databind.RuntimeJsonMappingException: Too many entries: expected at most 2 (value #2 (17 chars) "policy_issue_date") 
at [Source: (com.fasterxml.jackson.dataformat.csv.impl.UTF8Reader); line: 1, column: 37] 

    at com.fasterxml.jackson.databind.MappingIterator.next(MappingIterator.java:194) 
    at pl.polins.readers.oc.OcPolicyCsvReader.readNext(OcPolicyCsvReader.kt:25) 
    at pl.polins.readers.oc.OcPolicyCsvReaderTest.should read PolicyCsv from .csv file(OcPolicyCsvReaderTest.groovy:19) 
Caused by: com.fasterxml.jackson.dataformat.csv.CsvMappingException: Too many entries: expected at most 2 (value #2 (17 chars) "policy_issue_date") 
at [Source: (com.fasterxml.jackson.dataformat.csv.impl.UTF8Reader); line: 1, column: 37] 
    at com.fasterxml.jackson.dataformat.csv.CsvMappingException.from(CsvMappingException.java:23) 
    at com.fasterxml.jackson.dataformat.csv.CsvParser._reportCsvMappingError(CsvParser.java:1210) 
    at com.fasterxml.jackson.dataformat.csv.CsvParser._handleExtraColumn(CsvParser.java:965) 
    at com.fasterxml.jackson.dataformat.csv.CsvParser._handleNextEntry(CsvParser.java:826) 
    at com.fasterxml.jackson.dataformat.csv.CsvParser.nextToken(CsvParser.java:580) 
    at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:418) 
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1266) 
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:325) 
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:159) 
    at com.fasterxml.jackson.databind.MappingIterator.nextValue(MappingIterator.java:277) 
    at com.fasterxml.jackson.databind.MappingIterator.next(MappingIterator.java:192) 
    ... 2 more 

어떤 해결책이 있습니까 csv에서 원하지 않는 열을 무시합니까?

답변

0

찾을 솔루션 :

csvMapper.enable(CsvParser.Feature.IGNORE_TRAILING_UNMAPPABLE) 
+0

'내가 사용 된 스키마보다 더 많은 필드를 가진 클래스에서 작성하려고 할 때 (JsonGenerator.Feature.IGNORE_UNKNOWN가)'와 유사한 문제를 나에게 도움이 .enable –