小编not*_*org的帖子

跳过格式错误的CSV行

我一直在尝试读取csv并将字段添加到数据结构中。但是,其中一行的格式不正确,我知道这一点。我只想跳过这一行,然后转到另一行。但是,即使我捕获到异常,它仍在中断循环。知道我在这里缺少什么吗?

我的csv:

"id","name","email"
121212,"Steve","steve@example.com"
121212,"Steve","steve2@example.com",,
121212,"Steve","steve@example.com"
Run Code Online (Sandbox Code Playgroud)

我的代码:

import com.fasterxml.jackson.databind.MappingIterator;
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
import com.fasterxml.jackson.dataformat.csv.CsvSchema;

public static void main(String[] args) throws Exception{
    Path path = Paths.get("list2.csv");
    CsvMapper mapper = new CsvMapper();
    CsvSchema schema = CsvSchema.emptySchema().withHeader();
    MappingIterator<Object> it = mapper.reader(Object.class)
            .with(schema)
            .readValues(path.toFile());

    try{
        while(it.hasNext()){
            Object row;
            try{
                row = it.nextValue();
            } catch (IOException e){
                e.printStackTrace();
                continue;
            }
        }
    } catch (ArrayIndexOutOfBoundsException e){
        e.printStackTrace();
    }

}
Run Code Online (Sandbox Code Playgroud)

例外:

com.fasterxml.jackson.core.JsonParseException: Too many entries: expected at most 3 (value #3 (0 chars) "")
 at [Source: java.io.InputStreamReader@12b3519c; line: …
Run Code Online (Sandbox Code Playgroud)

java csv jackson jackson-modules

5
推荐指数
1
解决办法
4704
查看次数

标签 统计

csv ×1

jackson ×1

jackson-modules ×1

java ×1