Dan*_*Ruf 9 java csv json jackson
我使用以下代码:
CsvSchema bootstrap = CsvSchema.emptySchema().withHeader();
ObjectMapper mapper = new CsvMapper();
File csvFile = new File("input.csv"); // or from String, URL etc
Object user = mapper.reader(?).withSchema(bootstrap).readValue(new File("data.csv"));
mapper.writeValue(new File("data.json"), user);
Run Code Online (Sandbox Code Playgroud)
它在我的IDE中抛出一个错误,cannot find symbol method withSchema(CsvSchema)但为什么?我使用了一些例子中的代码.
我不知道要写什么,mapper.reader()因为我想转换任何CSV文件.
如何将任何CSV文件转换为JSON并将其保存到磁盘?
接下来做什么?例子
Mic*_*ber 25
我想,你应该MappingIterator用来解决你的问题.见下面的例子:
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 JacksonProgram {
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);
}
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息和示例,请参阅此页面:jackson-dataformat-csv.
| 归档时间: |
|
| 查看次数: |
40771 次 |
| 最近记录: |