Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in die Verwendung der json_decode-Funktion in PHP

Detaillierte Einführung in die Verwendung der json_decode-Funktion in PHP

不言
不言nach vorne
2018-12-29 10:13:069913Durchsuche

Dieser Artikel bietet Ihnen eine detaillierte Einführung in die Verwendung der json_decode-Funktion in PHP. Ich hoffe, dass er für Freunde hilfreich ist.

Wir alle wissen, dass die Funktion json_decode zum Dekodieren von Zeichenfolgen im JSON-Format verwendet werden kann. Unser häufig verwendetes Formular lautet wie folgt:

<?php
$json = &#39;some_json_data&#39;;
$result = json_decode($json, true);

Tatsächlich verfügt die Funktion json_decode() über mehrere Parameter. Abhängig von den übergebenen Parametern ist das Verhalten der Funktion unterschiedlich.

Dekodierte Daten

Möglicherweise haben Sie gesehen, dass die Funktion json_decode() den folgenden Fehler meldet:

Warning: json_decode() expects parameter 1 to be string, xxx given in

Laut Fehlermeldung ist das erste Each Der Parameter muss jedoch vom Typ string sein. Der erste Parameter kann jedoch tatsächlich von den folgenden drei Typen sein:

  • string

  • null

  • bool

Je nach Art der Parameter ändert sich auch der Rückgabewert der Funktion.

Rückgabewert

Die Funktion json_decode() gibt standardmäßig ein Objekt zurück, wenn JSON-Daten korrekt analysiert.

Aber nachdem der zweite Parameter in „true“ oder der vierte Parameter in „JSON_OBJECT_AS_ARRAY“ übergeben wurde, gibt die Funktion ein Array anstelle eines Objekts zurück, wenn die JSON-Daten korrekt analysiert werden.

Bitte beachten Sie meinen fett gedruckten Text. Die Funktion json_decode() gibt ein Objekt oder Array zurück, wenn die JSON-Daten korrekt analysiert werden. In einigen Fällen gibt die Funktion jedoch auch andere Daten zurück:

  • String-Typ und Daten im korrekten JSON-Format. Nach der Dekodierung wird ein Objekt oder Array zurückgegeben.

  • Ab PHP 5.6 gibt es in JSON-Daten „true“, „false“ und „null“. , wenn nicht verwendet. Im Kleinbuchstabenformat schlägt die Dekodierung fehl und null

  • Zeichenfolgentyp „true“, „false“, „null“ wird zurückgegeben (wenn alle Kleinbuchstaben sind)

  • Andere String-Typ-Parameter geben null zurück

  • true / false / null geben direkt null zurück

  • Andere Typen Die data meldet direkt einen Fehler

  • Wenn die Rekursionstiefe des dritten Parameters 1 ist, wird direkt null zurückgegeben

Also verwenden wir foreach, um das Wann zu dekodieren Beim Iterieren der Daten müssen Sie darauf achten, ob es sich bei den dekodierten Daten um ein Array handelt. Andernfalls wird während der Iteration ein Fehler gemeldet.

Sie können auf der offiziellen JSON-Website erfahren, welche Art von Daten im JSON-Format vorliegen.

Rekursionstiefe

Der dritte Parameter stellt die Rekursion dar Tiefe, die Tiefe muss größer als 0 sein, sonst wird ein Fehler gemeldet. Wenn die Rekursionstiefe 1 beträgt, ist das Ergebnis null, sodass die minimale Rekursionstiefe 2 beträgt.

Dekodierungsoptionen

Der vierte Parameter wird zum Festlegen von Optionen verwendet:

  • füllt einige leere Zeichen aus . , einfach anzuzeigen JSON_PRETTY_PRINT

  • Nicht kodieren JSON_UNESCAPED_SLASHES/

  • Unicode-Zeichen nicht kodieren, die Standardeinstellung ist zum Kodieren JSON_UNESCAPED_UNICODE uXXXX

Fehlerbehandlung

Wir können auch die Funktionen json_last_error und json_last_error_msg(PHP >= 5.5) mit der Funktion kombinieren @ Operator:

<?php
$json = 'some_json_data';
$result = @json_decode((string)$json, true);
if (json_last_error() !== JSON_ERROR_NONE) {
    throw new Exception(json_last_error_msg());
}

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Verwendung der json_decode-Funktion in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen