이 오류가 발생합니다.
JSON.parse : 예기치 않은 문자
방화범에서이 문을 실행할 때 :
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
.