IT

JSON.parse 예기치 않은 토큰

itgroup 2023. 2. 27. 22:53
반응형

JSON.parse 예기치 않은 토큰

왜 내가 할 때마다 :-

JSON.parse('"something"')

그냥 괜찮게 해석할 뿐인데, 내가 했을 때:-

var m = "something";
JSON.parse(m);

다음과 같은 오류가 발생합니다.

Unexpected token s

JSON 텍스트를 구문 분석하도록 요청하고 있습니다.something(없음)"something"잘못된 JSON입니다. 문자열은 큰따옴표로 묶어야 합니다.

첫 번째 예시와 동등한 것을 원하는 경우:

var s = '"something"';
var result = JSON.parse(s);

문자열의 래핑 따옴표를 삭제한 후 JSON.parse 메서드에 전달할 내용이 유효한 JSON이어야 합니다.

그렇게something유효한 JSON은 아니지만"something"이에요.

유효한 JSON은 다음과 같습니다.

JSON = null
    /* boolean literal */
    or true or false
    /* A JavaScript Number Leading zeroes are prohibited; a decimal point must be followed by at least one digit.*/
    or JSONNumber
    /* Only a limited sets of characters may be escaped; certain control characters are prohibited; the Unicode line separator (U+2028) and paragraph separator (U+2029) characters are permitted; strings must be double-quoted.*/
    or JSONString

    /* Property names must be double-quoted strings; trailing commas are forbidden. */
    or JSONObject
    or JSONArray

예 -

JSON.parse('{}'); // {}
JSON.parse('true'); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse('null'); // null 
JSON.parse("'foo'"); // error since string should be wrapped by double quotes

JSON을 보는 게 좋을 것 같아요.

변수(something)는 유효한 JSON이 아닙니다.http://jsonlint.com/ 를 사용해 확인해 주세요.

유효한 json 문자열은 큰따옴표로 묶어야 합니다.

JSON.parse({"u1":1000,"u2":1100})       // will be ok

견적서 없음 원인 오류

JSON.parse({u1:1000,u2:1100})    
// error Uncaught SyntaxError: Unexpected token u in JSON at position 2

작은따옴표원인오류

JSON.parse({'u1':1000,'u2':1100})    
// error Uncaught SyntaxError: Unexpected token u in JSON at position 2

json 문자열은 https://jsonlint.com에서 유효해야 합니다.

JSON에는 스트링 데이터 타입이 있기 때문에(실제로는 데이터 타입과 데이터 타입 사이의)"그리고."일치하는 데이터 타입이 없습니다.something

언급URL : https://stackoverflow.com/questions/18791718/json-parse-unexpected-token-s

반응형