source

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

manysource 2023. 3. 6. 21:18

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

이유:

JSON.parse('');

오류가 발생합니까?

Uncaught SyntaxError: Unexpected end of input

그게 그냥 돌아왔으면 더 논리적이지 않을까요?null?

편집: 링크된 질문과 중복되지 않습니다.최소 유효 json 항목은 이 질문과 관련이 있지만 "왜"에 대해서는 언급하지 않습니다.

빈 문자열은 유효한 JSON이 아니므로 다음 항목에 대해 올바르지 않습니다.JSON.parse('')돌아오다null왜냐면"null"유효한 JSON입니다.

JSON.parse("null");

돌아온다null무효인 JSON도 null로 해석하는 것은 실수입니다.

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

즉, 따옴표가 2개인 문자열은 빈 문자열과 다릅니다.

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.parse오브젝트인지 아닌지에 관계없이 문자열 내에 유효한 표기가 필요합니다.{}, 어레이[], 문자열""또는 숫자 유형(int, float, doubles)을 지정합니다.

해석하고 있는 문자열이 빈 문자열이 될 가능성이 있는 경우 개발자는 해당 문자열을 확인해야 합니다.

기능에 내장되어 있으면 사이클이 추가되기 때문에 내장 기능은 매우 높은 성능을 기대할 수 있으므로 레이스 케이스에 맞게 프로그래밍하지 않는 것이 좋습니다.

"는 유효한 Javascript/J가 아니기 때문입니다.SON 오브젝트빈 개체는 '{}'입니다.

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

유효한 JSON 문자열에는 "{}" 이상이 필요합니다.자세한 것은, http://json.org/ 를 참조해 주세요.

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