Heim >Web-Frontend >js-Tutorial >Wie stellt Javascript fest, ob es im JSON-Format vorliegt?

Wie stellt Javascript fest, ob es im JSON-Format vorliegt?

青灯夜游
青灯夜游Original
2021-06-07 16:34:0732792Durchsuche

Beurteilungsmethode: Verwenden Sie zuerst die Anweisung „JSON.parse(str)“, um die angegebene Datenmenge zu analysieren, und verwenden Sie dann die Anweisung „if(typeof obj =='object'&&obj)“, um zu bestimmen, ob der Typ der analysierten Daten vorliegt ist der Typ „object“; wenn ja, liegen die str-Daten im JSON-Format vor.

Wie stellt Javascript fest, ob es im JSON-Format vorliegt?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.

js bestimmt, ob eine Zeichenfolge im JSON-Format vorliegt

kann nicht einfach verwendet werden, um festzustellen, ob eine Zeichenfolge im JSON-Format vorliegt:

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!')    
}

Für Zeichenfolgen im oben genannten try/catch的确实不能完全检验一个字符串是JSON-Format gibt es viele Ausnahmen:

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

Wir wissen, dass die Datentypen in JS unterteilt sind in: Zeichenfolge, Zahl, Boolescher Wert, Array, Objekt, Null und Undefiniert.

Wir können die folgende Methode zur Beurteilung verwenden:

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"]'))

Das laufende Ergebnis ist:

> "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"

Daher können wir die folgenden Schlussfolgerungen ziehen:

Die Methode JSON.parse() wird zum Parsen von JSON-Strings verwendet, und json.parse( ) konvertiert Zeichenfolgen in „In JSON-Objekt konvertieren“

Wenn JSON.parse erfolgreich konvertiert werden kann und der konvertierte Typ ein Objekt und nicht gleich Null ist, dann ist diese Zeichenfolge eine Zeichenfolge im JSON-Format.

JSON.parse():

JSON wird normalerweise zum Datenaustausch mit dem Server verwendet.

Beim Empfang von Serverdaten handelt es sich normalerweise um eine Zeichenfolge.

Wir können die Methode JSON.parse() verwenden, um Daten in JavaScript-Objekte zu konvertieren.

Syntax:

JSON.parse(text[, reviver])

Parameterbeschreibung:

  • Text: erforderlich, eine gültige JSON-Zeichenfolge.

  • reviver: Optional, eine Funktion, die das Ergebnis umwandelt. Diese Funktion wird für jedes Mitglied des Objekts aufgerufen.

Stellen Sie vor dem Parsen sicher, dass Ihre Daten im Standard-JSON-Format vorliegen, da sonst Parsing-Fehler auftreten.

Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Programmiervideos! !

Das obige ist der detaillierte Inhalt vonWie stellt Javascript fest, ob es im JSON-Format vorliegt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn