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

'\\'나는 중 하나가 작동하지 않는 완전히 대체와 동일했다. 그것은 같은 방식으로 저장하고 JSON에서 내 웹 서비스로 보내려고하면 문자열의 '\'로 인해 작동하지 않습니다. 오류가 발생합니다.

'\'가 '\\'로 대체되도록 보장 할 수있는 방법이 있습니까?

시간 내 주셔서 감사합니다.

+3

JSON을 잘못 작성한 경우가 대부분입니다. 그것을하기 위해 도서관을 이용하십시오; JSON 문자열을 직접 작성하지 마십시오. – VGR

+0

이스케이프 처리되지 않은 백 슬래시를 올바르게 포함 할 수있는 문자열이 이미 있습니다. 그들을 탈출 할 수있는 유일한 이유는 수동으로 Java에서 문자열을 작성하는 경우입니다. –

+0

JSON 문서 작성 구현을 게시 할 수 있습니까? –

답변

0

JSON 개체를 삽입하려고해도 오류가 발생했습니다. 어쩌면 내가 잘못했기 때문에 JSON 개체에 할당하기 전에 .replace("\\","\\\\")을 사용하는 것이 좋습니다.

그리고 여러 응용 프로그램으로 작업하고 있는데,이 응용 프로그램에는 여러 구문 분석 파일이 포함되어있어 많은 문제가 발생하고 불필요한 복잡성이 추가됩니다.

도움 주셔서 감사합니다.