JSON.parse 예기치 않은 문자 오류
다음의 에러가 표시됩니다.
JSON.parse: 예기치 않은 문자
이 명령어를 firebug로 실행하면 다음과 같습니다.
JSON.parse({"balance":0,"count":0,"time":1323973673061,"firstname":"howard","userId":5383,"localid":1,"freeExpiration":0,"status":false});
그것은 왜 그럴까?JSON 문자열은 맞는 것 같고 JSHint를 사용하여 테스트도 해봤습니다.위의 경우 전달된 개체는 콘텐츠 유형이 다음과 같이 설정된 서버 응답입니다.application/json
문자열을 해석하는 것이 아니라 이미 해석된 개체를 해석하는 것입니다. :)
var obj1 = JSON.parse('{"creditBalance":0,...,"starStatus":false}');
// ^ ^
// if you want to parse, the input should be a string
var obj2 = {"creditBalance":0,...,"starStatus":false};
// or just use it directly.
다음 명령어를 사용하여 문제의 개체가 구문 분석 함수에 전달되기 전에 문자열화되어 있는지 확인할 수 있습니다.JSON.stringify().
아래 라인을 업데이트했습니다.
JSON.parse(JSON.stringify({"balance":0,"count":0,"time":1323973673061,"firstname":"howard","userId":5383,"localid":1,"freeExpiration":0,"status":false}));
또는 JSON이 변수에 저장되어 있는 경우:
JSON.parse(JSON.stringify(yourJSONobject));
OP에는 해당되지 않지만 이 오류는 작은 따옴표를 사용하여 발생할 수 있습니다.'(이중)이 아닌 ( )")를 지정합니다.
JSON 규격에서는 문자열에 큰따옴표가 필요합니다.
예:
JSON.parse(`{"myparam": 'myString'}`)
에러를 나타내고 있는 반면,
JSON.parse(`{"myparam": "myString"}`)
하지 않다.주위에 따옴표를 적어 둡니다.myString.
관련: https://stackoverflow.com/a/14355724/1461850
언급URL : https://stackoverflow.com/questions/8524933/json-parse-unexpected-character-error
'programing' 카테고리의 다른 글
| AngularJS의 루트스코프에 브로드캐스트이벤트 등록을 취소하려면 어떻게 해야 하나요? (0) | 2023.03.10 |
|---|---|
| 스프링 구성 파일에서 bean ID와 이름을 사용하는 차이점 (0) | 2023.03.10 |
| AngularJS의 Run Block에서 약속을 기다리는 방법 (0) | 2023.03.10 |
| "SELECT FOR UPDATE"는 행이 없을 때 다른 연결을 삽입할 수 없도록 합니까? (0) | 2023.03.10 |
| Angular를 사용하여 형식 유효성 검사에서 두 입력 값 비교JS (0) | 2023.03.10 |