728x90
반응형
질문 : Try / Catch를 사용하지 않고 JavaScript에서 문자열이 유효한 JSON 문자열인지 확인하는 방법
다음과 같은 것 :
var jsonString = '{ "Id": 1, "Name": "Coke" }';
//should be true
IsJsonString(jsonString);
//should be false
IsJsonString("foo");
IsJsonString("<div>foo</div>")
솔루션에는 try / catch가 포함되지 않아야합니다. 우리 중 일부는 "모든 오류 중단"을 설정하고 잘못된 JSON 문자열을 중단하는 디버거를 좋아하지 않습니다.
답변
먼저 코멘트. try/catch
사용하지 않는 것에 관한 것이 었습니다.
그것을 사용해도 괜찮다면 아래 답변을 읽으십시오. JSON
문자열을 확인하기 만하면 모든 경우가 아닌 대부분의 경우에서 작동합니다.
https://github.com/douglascrockford/JSON-js/blob/master/json2.js 에서 450 번 라인을 살펴보세요.
다음과 같이 유효한 JSON을 확인하는 정규 표현식이 있습니다.
if (/^[\],:{}\s]*$/.test(text.replace(/\\["\\\/bfnrtu]/g, '@').
replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
//the json is ok
}else{
//the json is not ok
}
편집 : json2.js의 새 버전은 위보다 더 고급 구문 분석을 수행하지만 여전히 정규 표현식 교체를 기반으로합니다 ( @Mrchief의 주석에서 )
출처 : https://stackoverflow.com/questions/3710204/how-to-check-if-a-string-is-a-valid-json-string-in-javascript-without-using-try
728x90
반응형
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
Java에서 Map 값을 증가시키는 가장 효율적인 방법 (0) | 2021.11.29 |
---|---|
자바 HashMap을 통해 반복하는 방법 (0) | 2021.11.26 |
java.time.LocalDateTime과 java.util.Date 간 변환 (0) | 2021.11.24 |
Java 배열을 출력하는 가장 간단한 방법 (0) | 2021.11.24 |
JavaBean의 역할 (0) | 2021.11.24 |