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 に答える