code

JSON.parse가 빈 문자열로 실패하는 이유는 무엇입니까?

codestyles 2020. 12. 8. 08:06
반응형

JSON.parse가 빈 문자열로 실패하는 이유는 무엇입니까?


이 질문에 이미 답변이 있습니다.

이유 :

JSON.parse('');

오류가 발생합니까?

Uncaught SyntaxError: Unexpected end of input

방금 돌아온다면 더 논리적이지 null않습니까?


빈 문자열은 유효한 JSON이 아니므로 유효한 JSON 이기 때문에 JSON.parse('')반환하는 것이 올바르지 않습니다 . 예 :null"null"

JSON.parse("null");

를 반환합니다 null. 유효하지 않은 JSON도 null로 파싱되는 것은 실수입니다.

빈 문자열은 유효한 JSON이 아니지만 두 개의 따옴표는 유효한 JSON입니다. 이것은 중요한 차이점입니다.

즉, 두 개의 따옴표를 포함하는 문자열은 빈 문자열과 동일하지 않습니다.

JSON.parse('""');

올바르게 구문 분석됩니다 (빈 문자열 반환). 그러나

JSON.parse('');

하지 않을 것이다.

유효한 최소 JSON 문자열은 다음과 같습니다.

빈 개체 '{}'

빈 배열 '[]'

비어있는 문자열 '""'

예 : 숫자 '123.4'

부울 값 true 'true'

부울 값 false 'false'

null 값 'null'


그것을 피하려면 try-catch를 사용하십시오.

var result = null;
try {
  // if jQuery
  result = $.parseJSON(JSONstring);
  // if plain js
  result = JSON.parse(JSONstring);
}
catch(e) {
  // forget about it :)
}

JSON.parseobject {}, array [], string ""또는 숫자 유형 (int, float, doubles) 여부에 관계없이 문자열 내에서 유효한 표기법이 필요합니다 .

구문 분석이 빈 문자열이 될 가능성이있는 경우 개발자는이를 확인해야합니다.

기능에 내장 된 경우 추가 사이클이 추가됩니다. 내장 된 기능은 매우 성능이 좋을 것으로 예상되기 때문에 레이스 케이스에 맞게 프로그래밍하지 않는 것이 좋습니다.


유효한 JSON 문자열의 경우 최소한 "{}"가 필요합니다. http://json.org/ 에서 자세한 내용을 참조하십시오.


''은 유효한 Javascript / JSON 객체가 아니기 때문입니다. 빈 개체는 '{}'입니다.

참고 : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse

참고 URL : https://stackoverflow.com/questions/30621802/why-does-json-parse-fail-with-the-empty-string

반응형