gpt4 book ai didi

Java、Csv 到 json、jackson-dataformat-csv

转载 作者:行者123 更新时间:2023-12-02 13:19:19 28 4
gpt4 key购买 nike

我是java新手,我想将csv文件转换为json

我使用以下代码示例将 csv 文件转换为 json 文件,问题是,我在“withSchema(bootstrap)”上遇到了一个错误,它说:“对于 ObjectReader 类型,with(CsvSchema) 的方法未定义” 我不知道如何修复它,我已将 Maven 依赖项更改为版本 2.9.0,尝试使用 type(bootstrap) 和 CsvSchema(bootstap) 但仍然无法正常工作。

谢谢

这是代码:

package CsvData;

import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Map;

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

public class csvjson {

public static void main(String[] args) throws Exception {
File input = new File("/x/data.csv");
File output = new File("/x/data.json");

List<Map<?, ?>> data = readObjectsFromCsv(input);
writeAsJson(data, output);
}

public static List<Map<?, ?>> readObjectsFromCsv(File file) throws IOException {
CsvSchema bootstrap = CsvSchema.emptySchema().withHeader();
CsvMapper csvMapper = new CsvMapper();
MappingIterator<Map<?, ?>> mappingIterator = csvMapper.reader(Map.class).with(bootstrap).readValues(file);

return mappingIterator.readAll();
}

public static void writeAsJson(List<Map<?, ?>> data, File file) throws IOException {
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(file, data);
}
}

最佳答案

我尝试过版本 2.2.1,它对我来说工作得很好。

<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-csv</artifactId>
<version>2.2.1</version>

这是Java方法

public static List<Map<?, ?>> readObjectsFromCsv(File file) throws IOException {
CsvSchema bootstrap = CsvSchema.emptySchema().withHeader();
CsvMapper csvMapper = new CsvMapper();
MappingIterator<Map<?, ?>> mappingIterator = csvMapper.reader(Map.class).with(bootstrap).readValues(file);

return mappingIterator.readAll();
}

甚至文档说它从 2.2 开始就可以工作,但不知道为什么它不适用于 2.9.0。

关于Java、Csv 到 json、jackson-dataformat-csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43633627/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com