programing

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

easyjava 2023. 3. 10. 22:53
반응형

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

반응형