2016-10-03 17 views
0

「\」でセルを読み取った後、Javaのエスケーププロパティのために「\」に置き換えるときに問題が発生します。例えばバックスラッシュを含むJavaで.CSVを読む

:「エラー:提供P \ JB credenti」

私が使用して、細胞から直接これを読んだとき:

if (type == TStream.Spreadsheet) { 
      try { 
       FileInputStream stream = new FileInputStream(file); 
       Workbook workbook = Workbook.getWorkbook(stream); 
       Sheet sheet = workbook.getSheet(0); 

       int rows = sheet.getRows(); 

       int ignored = 0; 
       int parsed = 0; 

       for (int i = 1; i < rows; i++) { 
        try { 
         Cell content = sheet.getCell(0, i); 

を、その後私が作ったオブジェクトにそれを置きますその情報を格納します。

ObjectThatIMade object_= new ObjectThatIMade(); 

    object_.setContent(content.getContents().replace("\\", "\\\\")); 

それは「\\」に「\」を変更しない、私はそれはどちらか動作しませんでReplaceAllと同じことをやりました。それは同じ方法で保存され、JSONでWebサービスに送信しようとすると、文字列の '\'のために動作しません。エラーが発生します。

'\'が '\\'に置き換えられることを保証する方法はありますか?

ありがとうございました!

+3

JSONを間違って作成している可能性があります。ライブラリを使用してそれを行います。自分でJSON文字列を作成しないでください。 – VGR

+0

エスケープされていないバックスラッシュを正しく含むことができる文字列がすでにあります。それらをエスケープする唯一の理由は、あなたが手動でJavaで文字列を作成している場合です。 –

+0

JSON文書の構築の実装を投稿してください。 –

答えて

0

JSONオブジェクトを挿入しようとしても、私にエラーが発生している可能性があります。私がやったことは、JSONオブジェクトへの割り当ての前に.replace("\\","\\\\")を使用することです。

私は複数のアプリケーションで作業していますが、このアプリケーションには複数の解析ファイルがあり、多くの問題が発生し、不要な複雑さが増しています。

お世話になりました。

関連する問題