2014-04-10 3 views
1

JQuery.parseJSON 함수를 사용하여 JSON 문자열을 구문 분석합니다. 코드에서 많은 시간을 보았습니다. 이 특별한 경우에, 나는 얻는다 : Uncaught SyntaxError: Unexpected token R. JSON 형식의 String에 존재하는 유일한 대문자 R은 이스케이프 된 인용 부호 바로 뒤에 ... \"R ...과 같습니다. 우연의 일치가 너무 많아서 이것 이외의 다른 것으로 인한 것 같지만, 제가 말할 수있는 한 json.org에 설명 된대로 올바른 구문을 완전히 따라했습니다.JSON에서 따옴표를 이스케이프 처리하지 못하는 이유는 무엇입니까?

편집 : 수동으로 하드 코딩 테스트에 \"의 occurrances을 제거하기 위해 노력했습니다

, 완벽하게 적절한 자바 스크립트 객체에 문자열 형식을 지원합니다. 즉, 내 \"

var myObject = $.parseJSON(myString); 

편집 2 ... 확실히 여기에 문제가 : 내 문자열의 문제가있는 부분이 여기에 표시됩니다

모두 작업 및 조건을 작동하지 않는있다. 먼저 문제 하나 : 그런 작업 한

{"lineID":33,"boxID":10,"title":"My text with the \"Ruining Part\""} 

:

{"lineID":33,"boxID":10,"title":"My text with the Ruining Part"} 

마지막으로 내가 JSON 문자열로 내 자바 빈즈 객체를 포맷하는 방법.

String jsonObjectAsString = new Gson().toJson(myJavaBeanObject); 
+1

이 도움이 될 일으키는 JSON 문자열을 게시 우리에게 전체 JSON 메시지 –

+1

를 표시합니다. – techfoobar

+0

처음부터 JSON을 어떻게 작성하고 있습니까? 도서관 기능이나 자체 개발 한 것을 사용하고 있습니까? – Barmar

답변

2

당신은 아마 구문 분석됩니다 최종 문자열은 큰 따옴표 뒤에 단일 백 슬래시을 갖도록는, 하드 코드 된 경우, 귀하의 문자열에 백 슬래시를 이스케이프해야합니다. 그렇지 않으면 브라우저가 문자열에서 큰 따옴표를 이스케이프 처리하려고한다고 생각하지만 아무 것도 수행하지 않습니다.

그래서 당신의 문자열을 변경 :

...\\"R... 
+1

+1 JSON.parse ('{ "hello": "이것은"\ "String"}')''는 SyntaxError : 예기치 않은 토큰 S'를 반환하지만 JSON.parse 이것은 \\ "String"} ')'올바르게 전달 된 JSON 문자열을 구문 분석합니다. – techfoobar

+0

나는 완전히 이해하지 못한다. JSON 형식으로 구문 분석하기 전의 내 문자열은 '폐허가 된 부분'이 포함 된 내 텍스트입니다. Gson에 의해 포맷 된, 그것은'\ "Ruining Part \"'를 가진 나의 텍스트가된다. 그것은 자바 스크립트에서 다시 자동으로 객체로 파싱 될 때 '폐허가 된 부분'이있는 '내 텍스트'가 아닌가? 또는 Gson과 javascripts 구문 분석 방식간에 불일치가 있습니까? 그리고 Gson이 반전 된 solidus를 벗어나서 실제 인용 부호를 벗어날 수는 없습니까? – KjetilNordin

+1

\ "을 사용하면 JavaScript의 문자열 파서 ("문자 "의 이스케이프 문자로 사용)가 JSON 구문 분석기에서"\ "사용됩니다.하지만 \\ "을 사용하면 JavaScript 문자열 파서가 \를 이스케이프 문자로 사용하고 JSON 파서가 \" – techfoobar

관련 문제