2014-06-17 2 views
0

내가 JSON.parse()를 사용하려고 노력하지만, 내가 가지고있는 오류자바 스크립트 JSON.parse()

Uncaught SyntaxError: Unexpected token ' 

JSON.parse('{"inputType":"select", "rules" :[{"rule": "literal_values", "restriction": "US"}]}') 

작동하지만

enter image description here

작동하지 않음 두 번째 버전이 작동하지 않는 이유는 무엇입니까?

대해서 typeof (validRules가) 문자열

+6

저의 작품 ... jsFiddle에서 재현 할 수 있습니까? – CodingIntrigue

+1

다른 결과가 나올 이유는 없습니다. 테스트 환경에서 똑같은 문자열을 사용하고 있습니까? – musefan

+0

죄송합니다, 내 질문을 – javagc

답변

1

의 스크린 샷이다 문자열 값 내의 문자로 단일 따옴표를 보여줍니다.

console.log(JSON.parse("'{\"inputType\":\"select\"}'")) 
//     ^      ^
// SyntaxError: Unexpected token ' 
console.log(validRules.charAt(0));  // "'" vs. "{" 
console.log(validRules.charCodeAt(0)); // 39 vs. 123 

동안, 당신의 코드에서, 그들은 문자열 리터럴에 대한 구분 기호의 역할을하고 있습니다.

console.log(JSON.parse('{"inputType":"select"}')) 
// { inputType: 'select' } 

JSON으로 구문 분석하려면 문자열 값에서 작은 따옴표를 제거해야합니다.