[javascript] JSON.parse 예기치 않은 문자 오류

이 오류가 발생합니다.

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.

관련 : https://stackoverflow.com/a/14355724/1461850


답변