JavaScript は、JSON 形式かどうかをどのように判断しますか?

青灯夜游
リリース: 2021-06-07 16:34:46
オリジナル
32729 人が閲覧しました

判定方法: まず「JSON.parse(str)」ステートメントを使用して指定されたデータ str を解析し、次に「if(typeof obj =='object'&&obj)」ステートメントを使用して型が正しいかどうかを判断します。解析されたデータのタイプが「オブジェクト」である場合、str データは json 形式になります。

JavaScript は、JSON 形式かどうかをどのように判断しますか?

このチュートリアルの動作環境: Windows7 システム、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])
ログイン後にコピー

パラメータの説明:

  • テキスト: 必須、有効な JSON 文字列。

  • reviver: オプション、結果を変換する関数。この関数はオブジェクトの各メンバーに対して呼び出されます。

解析する前に、データが標準の JSON 形式であることを確認してください。そうでない場合、解析エラーが発生します。

プログラミング関連の知識について詳しくは、プログラミング ビデオをご覧ください。 !

以上がJavaScript は、JSON 形式かどうかをどのように判断しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート