javascript는 json 형식인지 여부를 어떻게 결정합니까?

青灯夜游
풀어 주다: 2021-06-07 16:34:46
원래의
32736명이 탐색했습니다.

판단 방법: 먼저 "JSON.parse(str)" 문을 사용하여 지정된 데이터 문자열을 구문 분석한 다음 "if(typeof obj =='object'&&obj)" 문을 사용하여 구문 분석된 데이터의 유형을 확인합니다. "객체" 유형입니다. 그렇다면 str 데이터는 json 형식입니다.

javascript는 json 형식인지 여부를 어떻게 결정합니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

js는 문자열이 JSON 형식인지 확인합니다.

단순히 문자열이 JSON 형식인지 확인하는 데 사용할 수 없습니다.

function isJSON(str) {
    if (typeof str == 'string') {
        try {
            JSON.parse(str);
            return true;
        } catch(e) {
            console.log(e);
            return false;
        }
    }
    console.log('It is not a string!')    
}
로그인 후 복사

try/catch的确实不能完全检验一个字符串是JSON 형식의 문자열에는 많은 예외가 있습니다.

JSON.parse('123'); // 123
JSON.parse('{}'); // {}
JSON.parse('true'); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse('null'); // null
로그인 후 복사

우리는 JS의 데이터 유형이 문자열, 숫자, 부울, 배열, 객체, Null 및 정의되지 않음으로 구분된다는 것을 알고 있습니다.

다음 방법을 사용하여 판단할 수 있습니다.

function isJSON(str) {
    if (typeof str == 'string') {
        try {
            var obj=JSON.parse(str);
            if(typeof obj == 'object' && obj ){
                return true;
            }else{
                return false;
            }

        } catch(e) {
            console.log('error:'+str+'!!!'+e);
            return false;
        }
    }
    console.log('It is not a string!')
}


console.log('123 is json? ' + isJSON('123'))
console.log('{} is json? ' + isJSON('{}'))
console.log('true is json? ' + isJSON('true'))
console.log('foo is json? ' + isJSON('"foo"'))
console.log('[1, 5, "false"] is json? ' + isJSON('[1, 5, "false"]'))
console.log('null is json? ' + isJSON('null'))
console.log('["1{211323}","2"] is json? ' + isJSON('["1{211323}","2"]'))
console.log('[{},"2"] is json? ' + isJSON('[{},"2"]'))
console.log('[[{},{"2":"3"}],"2"] is json? ' + isJSON('[[{},{"2":"3"}],"2"]'))
로그인 후 복사

실행 결과는 다음과 같습니다.

> "123 is json? false"
> "{} is json? true"
> "true is json? false"
> "foo is json? false"
> "[1, 5, "false"] is json? true"
> "null is json? false"
> "["1{211323}","2"] is json? true"
> "[{},"2"] is json? true"
> "[[{},{"2":"3"}],"2"] is json? true"
로그인 후 복사

따라서 다음과 같은 결론을 내릴 수 있습니다.

JSON.parse() 메서드는 JSON 문자열을 구문 분석하는 데 사용되며 json.parse( )는 문자열을 json 객체로 변환

로 변환합니다. JSON.parse가 성공적으로 변환될 수 있고 변환된 유형이 객체이고 null과 같지 않으면 이 문자열은 JSON 형식의 문자열입니다.

JSON.parse():

JSON은 일반적으로 서버와 데이터를 교환하는 데 사용됩니다.

서버 데이터를 수신할 때 일반적으로 문자열입니다.

JSON.parse() 메서드를 사용하여 데이터를 JavaScript 객체로 변환할 수 있습니다.

구문: ​​

JSON.parse(text[, reviver])
로그인 후 복사

매개변수 설명:

  • text: 필수, 유효한 JSON 문자열.

  • reviver: 선택 사항이며 결과를 변환하는 함수입니다. 이 함수는 개체의 각 구성원에 대해 호출됩니다.

분석하기 전에 데이터가 표준 JSON 형식인지 확인하세요. 그렇지 않으면 구문 분석 오류가 발생합니다.

더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 비디오를 방문하세요! !

위 내용은 javascript는 json 형식인지 여부를 어떻게 결정합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿