我正在尝试使用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]]]}"
答案 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使用不同的字符作为引号和转义,但您应该坚持使用默认字符,因为它们更普遍被接受。