2016-10-03 31 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("\\","\\\\")

它的工作,我正與多個應用程序,這個應用程序包含多個解析文件,這會產生許多問題,並增加不必要的複雜性。

非常感謝您的幫助!