为什么我的CSVMapper会在某些字符串中引用而不是其他字符串?

时间:2018-03-08 02:10:52

标签: java csv file-io opencsv supercsv

我有一个这样的课程:

@JsonPropertyOrder({"Chilli"})
public interface ChilliReport {
    @JsonProperty("Chilli")
    String getChilli();

    @JsonProperty("Price")
    String getPrice();
}

// Then, I'll populate this with some values.


CsvMapper csvMapper = new CsvMapper();
CsvSchema schema = csvMapper.schemaFor(ChilliReport.class).withHeader();

String payload = csvMapper.writer(schema).writeValueAsString(reports);
System.out.println(payload);

为什么有时会引用“辣椒”这个字段,有时会引用它?

Ex:有时候,我的数据看起来像这样:

“辣椒”“价格”

“红”,10

其他时间如下: “辣椒”“价格”

黄色,10

顺便说一句,我更改了类的名称和字段的实际名称,但这是我问题的要点

1 个答案:

答案 0 :(得分:0)

如果字段包含分隔符,则必须引用它们。

有些作者可能会引用所有字段,有些只是内部有分隔符的字段(实际上会使文件变小)。

所以,你可能有这样的事情:

Chilli,Price
"Red,extra",10
Yellow,10

给出了下表:

Chilli          Price
Red,extra       10
Yellow          10

如果没有引号,你会得到:

Chilli          Price
Red             extra       10
Yellow          10

或者在字符串的前面或末尾有空格,作者决定引用它们。