JSON.parse가 빈 문자열로 실패하는 이유는 무엇입니까?
이 질문에 이미 답변이 있습니다.
- 유효한 최소 JSON은 무엇입니까? 8 답변
이유 :
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.parse
object {}
, 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
'code' 카테고리의 다른 글
SQL Server 2012에서 SQL Server 2014의 백업을 복원 할 수 있습니까? (0) | 2020.12.08 |
---|---|
신속한 배열 비교 (0) | 2020.12.08 |
numpy.exp ()는 정확히 무엇을합니까? (0) | 2020.12.08 |
apt-add-repository : Dockerfile에서 명령을 찾을 수 없음 오류 (0) | 2020.12.08 |
nginx 버전을 찾으 시나요? (0) | 2020.12.08 |