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

So konvertieren Sie JSON in ein Array in PHP

PHPz
PHPzOriginal
2023-04-20 10:07:08520Durchsuche

In PHP ist das Konvertieren von JSON in ein Array ein häufiger Vorgang. JSON ist ein leichtes Datenaustauschformat, das aufgrund seiner Lesbarkeit und Portabilität bei Entwicklern immer beliebter wird. Wenn Sie PHP für die JSON-Verarbeitung verwenden, können Sie die integrierten Funktionen von PHP verwenden, um JSON-Daten in ein Array zu konvertieren. In diesem Artikel erfahren Sie, wie Sie JSON mit PHP in ein Array konvertieren.

  1. Verwenden Sie die Funktion json_decode(), um JSON in ein Array zu konvertieren.

PHP bietet eine Funktion namens „json_decode()“, die JSON-Daten in ein PHP-Array konvertieren kann. Diese Funktion benötigt zwei Parameter: Der erste ist die JSON-Zeichenfolge, die Sie konvertieren möchten, und der zweite ist ein optionaler boolescher Parameter, der angibt, ob der JSON in ein assoziatives Array konvertiert werden soll. Standardmäßig ist der Wert dieses Parameters falsch, was bedeutet, dass ein normales Array zurückgegeben wird.

Das Folgende ist ein Beispiel für eine JSON-Zeichenfolge:

$json_string = '{
  "name": "John",
  "age": 30,
  "city": "New York"
}';

Konvertieren Sie diese JSON-Zeichenfolge in ein assoziatives Array, indem Sie die Funktion json_decode() aufrufen:

$array = json_decode($json_string, true);

Jetzt können wir den Wert der JSON-Daten erhalten, indem wir auf den Schlüssel von zugreifen das Array, zum Beispiel:

echo $array['name']; // 输出:John
echo $array['age']; // 输出:30
echo $array['city']; // 输出:New York
  1. Unterstützt die chinesische JSON-Analyse

Wenn die JSON-Zeichenfolge chinesische Zeichen enthält, ist eine spezielle Verarbeitung erforderlich, um sie korrekt zu analysieren. Dieses Problem kann mithilfe der in PHP integrierten Funktionen gelöst werden json_decode()配合json_last_error_msg().

$json_string = '{"中文": "这是一个中文字符串"}';
$array = json_decode($json_string, true);

if (json_last_error() === JSON_ERROR_UTF8) {
    $json_string = mb_convert_encoding($json_string, 'UTF-8', 'UTF-8');
    $array = json_decode($json_string, true);
}

echo $array['中文']; // 输出:这是一个中文字符串
  1. Es gibt mehrere Verschachtelungsebenen in der JSON-Zeichenfolge

Wenn es mehrere Verschachtelungsebenen in den JSON-Daten gibt, können Sie eine rekursive Methode verwenden, um das JSON in ein mehrdimensionales Array umzuwandeln. Wie unten gezeigt:

$json_string = '{
  "name": "John",
  "age": 30,
  "city": "New York",
  "children": [
    {
      "name": "Mary",
      "age": 5
    },
    {
      "name": "Bob",
      "age": 3
    }
  ]
}';
$array = json_decode($json_string, true);

function json_to_array($data) {
    if (is_object($data)) {
        $data = get_object_vars($data);
    }
    if (is_array($data)) {
        return array_map(__FUNCTION__, $data);
    } else {
        return $data;
    }
}

$array = json_to_array($array);

print_r($array); // 输出:
/*
Array
(
    [name] => John
    [age] => 30
    [city] => New York
    [children] => Array
        (
            [0] => Array
                (
                    [name] => Mary
                    [age] => 5
                )

            [1] => Array
                (
                    [name] => Bob
                    [age] => 3
                )

        )

)
*/

In diesem Artikel haben wir verschiedene Methoden zum Konvertieren von JSON in ein Array vorgestellt. Unabhängig davon, ob es sich um eine einfache JSON-Zeichenfolge oder mehrschichtige verschachtelte JSON-Daten handelt, kann die json_decode()-Funktion von PHP die Parsing-Aufgabe sehr gut erledigen. Ich hoffe, dieser Artikel kann Ihnen dabei helfen, PHP besser für die Verarbeitung von JSON-Daten zu nutzen.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie JSON in ein 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