很容易将 csv 解析为https://github.com/FasterXML/jackson-dataformats-text/tree/master/csv#with-column-names-from-first-rowList<Map<String,String>>
中所述
但是,类型推断必须手动完成。例如,像我在下面尝试做的事情?使用Boolean.parseBoolean
etc 对我来说感觉很臃肿,因为杰克逊把所有这些东西都做得很好......
CsvSchema schema = CsvSchema.emptySchema().withHeader();
CsvMapper mapper = new CsvMapper();
ObjectReader with = mapper.readerFor(ArrayNode.class).with(schema);
mapper.enable(CsvParser.Feature.WRAP_AS_ARRAY);
JsonNode readTree = with.readTree(new FileInputStream(file));
JsonNode jsonNode = arrayNode.get(0);
if (jsonNode.isObject()) {
Iterator<Entry<String, JsonNode>> fields = jsonNode.fields();
int counter = 0;
while (fields.hasNext()) {
Entry<String, JsonNode> entry = fields.next();
JsonNode value = entry.getValue();
if (value.isBoolean()) {
// nah
} else if (value.isNumber()) {
// yeah
} else if (value.isTextual()) {
// nah
}
}
}
是否可以将 CSV 行解析为具有正确值类型的 JsonNodes 而无需依赖 POJO 来提供它们?