openCSV库从变量中删除引号

时间:2013-09-18 21:12:02

标签: java json opencsv

我正在尝试使用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]]]}"

1 个答案:

答案 0 :(得分:1)

从技术上讲,除非您想要保留引号,否则您的JSON不是有效的CSV格式。双引号字符可以使用额外的双引号字符(as mentioned in the 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使用不同的字符作为引号和转义,但您应该坚持使用默认字符,因为它们更普遍被接受。