빈 문자열에서 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
'source' 카테고리의 다른 글
Twitter 부트스트랩과 Angular.js의 실제(또는 숨겨진) 차이점 (0) | 2023.03.06 |
---|---|
소스 루트 IntelliJ 외부에 있는 Java 파일 (0) | 2023.03.06 |
angular를 사용하여 브라우저 뒤로 버튼 클릭 이벤트를 감지하는 방법 (0) | 2023.03.06 |
angularjs 명령어로 컨트롤러를 요구하는 방법 (0) | 2023.03.06 |
부모 pom.xml이 없는 spring-boot에서는 전쟁 패키징을 생성할 수 없습니다. (0) | 2023.03.06 |