0

我正在尝试使用 opencsv 解析 csv 文件。文件中的最后一列有一个参数,实际上是 json。此 json 包含在“”中。问题是 opencsv 正在从 json 中删除一些 " 导致我的代码中断。

    CSVReader reader = new CSVReader(new FileReader("c:\\Json.csv"), ',');
nextLine = reader.readNext();
        nextLine[6];

有没有人见过这个?

在 csv 中找到的 json 示例

"{"type":"Polygon","coordinates":[[[-66.9,18.05],[-66.9,18.05]]]}"
4

1 回答 1

1

从技术上讲,除非您转义要保留的引号,否则您的 JSON 不是有效的 CSV 格式。双引号字符可以使用额外的双引号字符(如 RFC 中所述)或反斜杠(如 CSVReader 中的默认参数所期望的那样)进行转义。

因此,在您的示例中,CSV 内容应为:

"{""type"":""Polygon"",""coordinates"":[[[-66.9,18.05],[-66.9,18.05]]]}"

或者

"{\"type\":\"Polygon\",\"coordinates\":[[[-66.9,18.05],[-66.9,18.05]]]}"

如果您希望使用所有内部引号(但没有周围的引号)来读取/解析它。CSVReader 将两者读取为:

{"type":"Polygon","coordinates":[[[-66.9,18.05],[-66.9,18.05]]]}

另请注意,您可以告诉 CSVReader 使用不同的字符进行引号和转义,但您可能应该坚持使用默认值,因为它们更被普遍接受。

于 2013-09-18T21:41:59.453 回答