Heim >Backend-Entwicklung >PHP-Problem >So erhalten Sie ein JSON-Array in PHP

So erhalten Sie ein JSON-Array in PHP

PHPz
PHPzOriginal
2023-04-25 09:05:131075Durchsuche

Mit der kontinuierlichen Entwicklung des Internets verwenden Webanwendungen zunehmend das JSON-Format (JavaScript Object Notation) zur Datenübertragung. PHP kann problemlos mit JSON-Daten umgehen und ist daher für viele Webentwickler die Sprache der Wahl.

Das Abrufen von JSON-Daten und deren Konvertierung in ein Array ist eine sehr häufige Aufgabe in PHP. In diesem Artikel wird erläutert, wie Sie mit PHP ein JSON-Array abrufen, einschließlich der folgenden Aspekte:

  1. Verwenden Sie die Funktion json_decode(), um einen JSON-String in ein PHP-Array zu konvertieren.
  2. Verwenden Sie die PHP-Curl-Bibliothek, um JSON-Daten von anderen Websites abzurufen
  3. Verwenden Sie eine Bibliothek eines Drittanbieters (z. B. Guzzle). Rufen Sie JSON-Daten ab.
  4. Behandeln Sie Fehler und Ausnahmen beim Abrufen von JSON-Daten.
  5. Verwenden Sie die Funktion json_decode(), um einen JSON-String in ein PHP-Array zu konvertieren.

PHP bietet eine einfache Möglichkeit, JSON zu konvertieren string in ein PHP-Array, also die Funktion json_decode(). Die Funktion wird wie folgt verwendet:

$json_string = '{"name":"John","age":30,"city":"New York"}';
$php_array = json_decode($json_string, true);
print_r($php_array);

Ausgabe:

Array
(
    [name] => John
    [age] => 30
    [city] => New York
)

Im obigen Beispiel wird zunächst ein JSON-String definiert und dann mithilfe der Funktion json_decode() in ein PHP-Array konvertiert.

Es ist zu beachten, dass der zweite Parameter der Funktion json_decode() ein boolescher Wert ist, der angibt, ob der JSON-String in ein assoziatives Array konvertiert werden soll. Wenn auf „false“ gesetzt oder nicht festgelegt, wird die JSON-Zeichenfolge in ein Objekt konvertiert. Allerdings ist es üblicher, einen JSON-String in ein Array zu konvertieren.

Außerdem gibt die Funktion json_decode() NULL zurück, wenn die JSON-Zeichenfolge ungültig ist oder ungültige JSON-Daten enthält. Daher sollten Sie vor der Verwendung des Arrays prüfen, ob der Rückgabewert NULL ist.

  1. Verwenden Sie die PHP-Curl-Bibliothek, um JSON-Daten von anderen Websites abzurufen.

Wenn Sie JSON-Daten von anderen Websites abrufen möchten, können Sie die PHP-Curl-Bibliothek verwenden. Die Curl-Bibliothek ist eine Open-Source-Bibliothek, die mehrere Protokolle unterstützt, darunter HTTP, FTP, SMTP usw.

Hier ist ein einfaches Beispiel für die Verwendung von Curl zum Abrufen von JSON-Daten:

$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, "http://example.com/data.json");
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true);
$json_data = curl_exec($curl_handle);
curl_close($curl_handle);

$php_array = json_decode($json_data, true);
print_r($php_array);

Erstellen Sie im obigen Code zunächst eine Curl-Sitzung über die Funktion „curl_init()“. Verwenden Sie dann die Funktion „curl_setopt()“, um Optionen festzulegen, darunter die URL zum Herunterladen der JSON-Daten von der Website und die Option zum Speichern der heruntergeladenen Daten in einer Zeichenfolge.

Verwenden Sie abschließend die Funktion „curl_exec()“, um die Curl-Sitzung auszuführen und die zurückgegebenen JSON-Daten in der Variablen „$json_data“ zu speichern. Verwenden Sie dann die Funktion json_decode(), um die Zeichenfolge $json_data in ein PHP-Array zu konvertieren.

Es ist erwähnenswert, dass die Curl-Sitzung im obigen Beispiel Curl nicht automatisch schließt, nachdem das Skript ausgeführt wurde. Daher sollte die Curl-Sitzung explizit mit der Funktion „curl_close()“ geschlossen werden.

  1. Verwenden Sie Bibliotheken von Drittanbietern (z. B. Guzzle), um JSON-Daten abzurufen.

Es gibt viele Bibliotheken von Drittanbietern in PHP, mit denen Sie problemlos JSON-Daten von anderen Websites abrufen können. Eine der sehr beliebten Bibliotheken ist Guzzle.

Guzzle ist ein HTTP-basierter PHP-Client zum Senden von Anfragen und Verarbeiten von Antworten. Guzzle kann automatisch Zeitüberschreitungen, Weiterleitungen, Cookie-Verwaltung und andere Probleme bewältigen. Es unterstützt auch asynchrone Verarbeitung und PSR-7-HTTP-Nachrichten. Hier ist ein Beispiel für die Verwendung von Guzzle zum Abrufen von JSON-Daten:

use GuzzleHttp\Client;

$client = new Client();
$response = $client->get('http://example.com/data.json');
$json_data = $response->getBody()->getContents();
$php_array = json_decode($json_data, true);
print_r($php_array);

Im obigen Beispiel wird zunächst ein Guzzle-Client erstellt. Verwenden Sie dann die Methode $client->get(), um eine GET-Anfrage zu senden und die Antwort in der Variablen $response zu speichern.

Verwenden Sie die Methode $response->getBody()->getContents(), um den Hauptinhalt der Antwort vom Antwortobjekt abzurufen und ihn in der Variablen $json_data zu speichern. Verwenden Sie abschließend die Funktion json_decode(), um den String $json_data in ein PHP-Array zu konvertieren.

  1. Umgang mit Fehlern und Ausnahmen beim Abrufen von JSON-Daten

Beim Abrufen von JSON-Daten von anderen Websites oder beim Konvertieren von JSON-Strings in PHP-Arrays können Fehler oder Ausnahmen auftreten. Daher sollten dem Code geeignete Fehlerbehandlungs- und Ausnahmebehandlungsmechanismen hinzugefügt werden.

Das folgende Codebeispiel zeigt beispielsweise, wie ein Try-Catch-Block verwendet wird, um JSON-Dekodierungsfehler abzufangen:

$json_string = '{"name":"John","age":30,"city":"New York","}';
try {
    $php_array = json_decode($json_string, true, 512, JSON_THROW_ON_ERROR);
    print_r($php_array);
} catch (JsonException $e) {
    echo 'JSON解码错误:', $e->getMessage();
}

Im obigen Code werden die Option JSON_THROW_ON_ERROR und der Try-Catch-Block verwendet, um die JSON-Fehlerausnahme abzufangen. Wenn die JSON-Zeichenfolge ungültig ist, wird eine JsonException ausgelöst.

Darüber hinaus können Curl-Operationen und Guzzle-Anfragen in Funktionen gekapselt werden, inklusive Fehler- und Ausnahmebehandlung. Dadurch lässt sich der Code einfacher verwalten und wiederverwenden.

Zusammenfassung

Das Abrufen von JSON-Arrays ist ein wichtiger Bestandteil der modernen Webentwicklung. Die json_decode()-Funktion von PHP kann JSON-Strings bequem in PHP-Arrays konvertieren, während Bibliotheken wie Curl und Guzzle JSON-Daten von anderen Websites abrufen können. Obwohl diese Methoden einfach und benutzerfreundlich sind, muss beim Abrufen von JSON-Daten besonderes Augenmerk auf die Fehler- und Ausnahmebehandlung gelegt werden.

Das obige ist der detaillierte Inhalt vonSo erhalten Sie ein JSON-Array in PHP. 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