Heim > Backend-Entwicklung > PHP-Problem > Wie PHP JSON-Daten analysiert

Wie PHP JSON-Daten analysiert

PHPz
Freigeben: 2023-04-20 10:23:39
Original
3023 Leute haben es durchsucht

JSON (JavaScript Object Notation) ist ein leichtes Datenaustauschformat. Es verwendet für Menschen lesbaren Text zum Übertragen und Speichern von Datenobjekten. Im Gegensatz zu XML lässt sich JSON einfacher analysieren und verarbeiten und wird daher häufig beim Übertragen und Austauschen von Daten zwischen Webanwendungen und Servern verwendet.

In PHP können Sie die integrierte json_decode-Funktion verwenden, um einen JSON-String in ein PHP-Objekt zu konvertieren. Im folgenden Beispiel wird beispielsweise eine JSON-Zeichenfolge in ein PHP-Objekt analysiert:

<?php
$json_string = &#39;{"name":"John", "age":30, "city":"New York"}&#39;;
 
$obj = json_decode($json_string);
 
echo $obj->name; //输出 John
echo $obj->age; //输出 30
echo $obj->city; //输出 New York
?>
Nach dem Login kopieren

Diese Funktion akzeptiert zwei Parameter: die zu analysierende JSON-Zeichenfolge und eine boolesche Variable, die angibt, dass das analysierte JSON-Objekt in ein PHP-Objekt konvertiert werden soll (Standardwert ist „false“) oder Assoziatives Array (wahr).

Wenn die JSON-Daten jedoch ein Array von Objekten oder ein Array von Objekten enthalten, müssen sie mit einer rekursiven Funktion verarbeitet werden. Hier ist ein Beispiel, bei dem die JSON-Daten verschachtelte Objekt-Arrays und Objekt-Arrays enthalten:

{
    "employees": [
        {
            "name": "John Doe",
            "email": "john@example.com",
            "phones": [
                {
                    "type": "home",
                    "number": "555-555-1234"
                },
                {
                    "type": "work",
                    "number": "555-555-5678"
                }
            ]
        },
        {
            "name": "Jane Smith",
            "email": "jane@example.com",
            "phones": [
                {
                    "type": "home",
                    "number": "555-555-4321"
                },
                {
                    "type": "work",
                    "number": "555-555-8765"
                }
            ]
        }
    ]
}
Nach dem Login kopieren

Um solche Daten zu analysieren, kann man eine rekursive Funktion schreiben, die das gesamte JSON-Objekt durchläuft und es in ein PHP-Objekt oder -Array konvertiert. Hier ist eine Beispielfunktion, die JSON-Objektarrays, Objektarrays und Standard-JSON-Objekte verarbeitet:

 $value) {
        if (is_object($value)) {
            $result[$key] = json_to_array($value);
        } else if (is_array($value)) {
            $result[$key] = [];
 
            foreach ($value as $item) {
                $result[$key][] = json_to_array($item);
            }
        } else {
            $result[$key] = $value;
        }
    }
 
    return $result;
}
 
$json_string = '{
    "employees": [
        {
            "name": "John Doe",
            "email": "john@example.com",
            "phones": [
                {
                    "type": "home",
                    "number": "555-555-1234"
                },
                {
                    "type": "work",
                    "number": "555-555-5678"
                }
            ]
        },
        {
            "name": "Jane Smith",
            "email": "jane@example.com",
            "phones": [
                {
                    "type": "home",
                    "number": "555-555-4321"
                },
                {
                    "type": "work",
                    "number": "555-555-8765"
                }
            ]
        }
    ]
}';
 
$obj = json_decode($json_string);
$array = json_to_array($obj);
 
print_r($array);
?>
Nach dem Login kopieren

Diese Funktion gibt ein PHP-Array zurück, das die JSON-Daten für alle verschachtelten Objektarrays und Objekte enthält.

Das obige ist der detaillierte Inhalt vonWie PHP JSON-Daten analysiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage