So konvertieren Sie ein Objektarray in PHP in das JSON-Format
Bei der Webentwicklung ist es häufig erforderlich, ein Objektarray zur Verarbeitung an das Frontend zu übertragen, und diese Daten müssen normalerweise im JSON-Format übertragen werden. Viele Sprachen in Util bieten Tools zum Konvertieren von Objekten in das JSON-Format, und PHP ist keine Ausnahme. In diesem Artikel wird die Methode zum Konvertieren eines Objektarrays in das JSON-Format in PHP ausführlich vorgestellt.
1. Verwendung der Funktion json_encode()
PHP stellt die Funktion json_encode() zum Konvertieren des Objektarrays in das JSON-Format bereit. Die Methode zur Verwendung dieser Funktion ist wie folgt:
Beispielcode:
<?php $person = array( 'name' => 'jack', 'age' => 18, 'city' => 'beijing' ); echo json_encode($person); ?>
Ausgabeergebnis:
{"name":"jack","age":18,"city":"beijing"}
Wie Sie sehen können, besteht die Funktion der Funktion json_encode() darin, ein Array oder Objekt in eine Zeichenfolge im JSON-Format zu konvertieren. Im Beispiel definieren wir ein Objekt $person und verwenden dann die Funktion json_encode(), um das $person-Objekt in einen String im JSON-Format zu konvertieren und auszugeben.
2. Verwenden Sie die Funktion json_encode() mit Parametern
Die Funktion json_encode() kann zusätzlich zur Konvertierung eines Objektarrays in einen String im JSON-Format auch 4 Parameter akzeptieren.
$a. $value-Parameter
$value-Parameter wird verwendet, um das Objekt (oder Array) zu übergeben, das konvertiert werden muss. Der $value-Parameter kann ein beliebiger PHP-Typ außer einem Ressourcentyp sein. Bei konkreter Verwendung werden wir feststellen, dass ein verschachteltes oder am stärksten verschachteltes Array oder Objekt mehrere Schlüssel-Wert-Paare, Verschachtelungen, Arrays oder Objekte enthalten kann. Wenn diese Situation auftritt, können Sie diese Syntax verwenden, um ein neues Array oder Objekt zu erstellen.
Beispielcode:
<?php //嵌套数组和对象的例子 $person = array( 'name' => 'jack', 'age' => 18, 'city' => 'beijing', 'hobby' => array( 'reading', 'music', 'sports', 'travel' ), 'friends' => array( array( 'name' => 'tom', 'phone' => '13812999010' ), array( 'name' => 'lily', 'phone' => '13812999020' ) ) ); //使用json_encode()的方式将$person数组转换为json格式字符串 echo json_encode($person); ?>
Ausgabeergebnis:
{"name":"jack","age":18,"city":"beijing","hobby":["reading","music","sports","travel"],"friends":[{"name":"tom","phone":"13812999010"},{"name":"lily","phone":"13812999020"}]}
Wie Sie sehen können, unterstützt die Funktion json_encode() verschachtelte Arrays und Objekte, was für einige komplexere Datenformate sehr praktisch und praktisch ist.
$b. Der $options-Parameter
Der $options-Parameter wird verwendet, um anzugeben, wie Objekte und Arrays konvertiert werden. Wenn Sie beispielsweise die UTF-8-Codierung in der ausgegebenen JSON-Zeichenfolge deaktivieren möchten, können Sie die Option JSON_UNESCAPED_UNICODE verwenden. Diese Option bewirkt, dass alle nicht-englischen Zeichen in der Ausgabe in ihrer ursprünglichen Darstellung angezeigt werden.
Beispielcode:
<?php $person = array( 'name' => 'jack', 'age' => 18, 'city' => 'beijing' ); echo json_encode($person, JSON_UNESCAPED_UNICODE); ?>
Ausgabeergebnis:
{"name":"jack","age":18,"city":"beijing"}
$c. $ Depth-Parameter
Der $ Depth-Parameter wird verwendet, um die maximale Tiefe des Objekts oder Arrays anzugeben, bevor es in einen JSON-String konvertiert wird wenn es größer als 0 ist, andernfalls ist es ungültig. Wenn die Datentiefe die angegebene Tiefe überschreitet, gibt die Funktion json_encode() FALSE zurück. Standardmäßig ist der $ Depth-Parameter 512.
Beispielcode:
<?php $person = array( 'name' => 'jack', 'age' => 18, 'city' => 'beijing', 'hobby' => array( 'reading', 'music', 'sports', 'travel' ), 'friends' => array( array( 'name' => 'tom', 'phone' => '13812999010' ), array( 'name' => 'lily', 'phone' => '13812999020' ) ) ); echo json_encode($person, JSON_PRETTY_PRINT, 3); ?>
Ausgabeergebnis:
{ "name": "jack", "age": 18, "city": "beijing", "hobby": [ "reading", "music", "sports", "travel" ], "friends": [ { "name": "tom", "phone": "13812999010" }, { "name": "lily", "phone": "13812999020" } ] }
Wir können sehen, dass durch die Verwendung der Parameter JSON_PRETTY_PRINT und $ Depth die ausgegebene JSON-Zeichenfolge formatiert und das gesamte Objekt eingerückt wird.
$d. $reserved-Parameter
Der $reserved-Parameter gibt die Maßnahmen an, die ergriffen werden sollen, wenn der Mitgliedsname im Objekt oder Array mit PHP-reservierten Wörtern in Konflikt steht. Die Standardaktion besteht darin, einen Unterstrich hinzuzufügen. Dieser Parameter ist nur wirksam, wenn JSON_FORCE_OBJECT als Option verwendet wird.
3. Ausnahmebehandlung
Bei Verwendung der Funktion json_encode() für die JSON-Codierung können einige Ausnahmen auftreten, die eine besondere Behandlung erfordern, da die Funktion json_encode() sonst nicht ordnungsgemäß funktioniert.
$a. Codierungsproblem
Wenn Sie eine ISO-8859-1-codierte Nicht-Unicode-Zeichenfolge in den Namensschlüssel von $person einbetten möchten, schlägt json_encode() fehl. Wenn die entsprechende Zeichenfolge jedoch in Unicode konvertiert wird, ist die Codierung einwandfrei.
Beispielcode:
<?php $data = array( "name" => "Manfred", "age" => "31", "city" => "车里雅宾斯克", "UTF8" => "こんにちは" ); foreach ($data as $key => $value) { if (!mb_detect_encoding($value, 'utf-8', true)) { $data[$key] = mb_convert_encoding($value, 'UTF-8', 'ISO-8859-1'); } } echo json_encode($data); ?>
Ausgabeergebnis:
{"name":"Manfred","age":"31","city":"\u8f66\u91cc\u96c6\u5bbe\u65af\u514b","UTF8":"こんにちは"}
Wie Sie sehen können, hat die Funktion json_encode() das Objekt nach der Konvertierung der ISO-8859-1-Zeichenfolge in eine UTF-8-Zeichenfolge erfolgreich in das JSON-Format konvertiert.
$b. Problem mit dem UTF-8-Stücklistenheader
Wenn Sie eine mit dem UTF-8-Stücklistenheader codierte Zeichenfolge im Objektarray enthalten, funktioniert die Funktion json_encode() nicht. Wenn Sie ein Programm schreiben, das die BOM-Header-Kodierung enthält, sollten Sie daher den BOM-Header manuell entfernen, damit bei der Verwendung der Funktion json_encode() keine Probleme auftreten.
c. Probleme mit Multibyte-Arrays
Die Funktion json_encode() akzeptiert nur korrekte UTF-8-Zeichenfolgen und akzeptiert keine anderen Multibyte-Codierungsschemata. Wenn das Objektarray diese Codierungsschemata enthält, müssen Sie sie mit der Funktion mb_convert_encoding() in UTF-8-Strings konvertieren.
Beispielcode:
<?php $array = ['你好', 'こんにちは', 'Привет']; $json = json_encode($array); echo $json; // Error: Malformed UTF-8 characters, possibly incorrectly encoded
Ausgabeergebnis:
Error: Malformed UTF-8 characters, possibly incorrectly encoded
Hier können wir sehen, dass durch die Konvertierung eines Multibyte-Arrays in einen JSON-String eine Ausnahme verursacht wurde. Wir können dieses Problem mithilfe von mb_convert_encoding() lösen.
Beispielcode:
<?php $array = ['你好', 'こんにちは', 'Привет']; $json = json_encode(array_map(function ($str) { return mb_convert_encoding($str, 'UTF-8', 'UTF-8'); }, $array)); echo $json; ?>
Ausgabeergebnis:
["你好","こんにちは","Привет"]
Kurz gesagt, json_encode() ist eine sehr praktische Funktion, die uns helfen kann, ein Array von Objekten in eine Zeichenfolge im JSON-Format zu konvertieren. Im Einsatz müssen Sie die Lösungen für häufig auftretende Probleme klar verstehen, um diese Funktion besser nutzen zu können.
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie ein Objektarray in PHP in das JSON-Format. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die JIT -Kompilierung von PHP 8 verbessert die Leistung, indem häufig ausgeführte Code in den Maschinencode zusammengestellt wird, um Anwendungen mit schweren Berechnungen zugute und die Ausführungszeiten zu reduzieren.

In dem Artikel werden OWASP Top 10 Schwachstellen in PHP- und Minderungsstrategien erörtert. Zu den wichtigsten Problemen gehören die Injektion, die kaputte Authentifizierung und XSS mit empfohlenen Tools zur Überwachung und Sicherung von PHP -Anwendungen.

In dem Artikel wird das Sicherung von PHP -Dateien -Uploads erläutert, um Schwachstellen wie die Code -Injektion zu verhindern. Es konzentriert sich auf die Dateitypvalidierung, den sicheren Speicher und die Fehlerbehandlung, um die Anwendungssicherheit zu verbessern.

In dem Artikel wird die symmetrische und asymmetrische Verschlüsselung in PHP erörtert und ihre Eignung, Leistung und Sicherheitsunterschiede verglichen. Die symmetrische Verschlüsselung ist schneller und für Massendaten geeignet, während asymmetrisch für den sicheren Schlüsselaustausch verwendet wird.

In dem Artikel wird die Implementierung einer robusten Authentifizierung und Autorisierung in PHP erörtert, um den nicht autorisierten Zugriff zu verhindern, Best Practices zu beschreiben und sicherheitsrelevante Tools zu empfehlen.

In dem Artikel werden Strategien zur Implementierung der API-Rate in PHP erörtert, einschließlich Algorithmen wie Token-Bucket und Leaky Bucket sowie Bibliotheken wie Symfony/Rate-Limiter. Es deckt auch die Überwachung, die dynamischen Einstellungsgeschwindigkeiten und die Hand ab

Vorbereitete Aussagen in PHP erhöhen die Sicherheit und Effizienz der Datenbank durch Verhinderung der SQL -Injektion und Verbesserung der Abfrageleistung durch Zusammenstellung und Wiederverwendung.

In dem Artikel werden die Funktionen von MySQLI_Query () und MySQLI_Fetch_assoc () in PHP für MySQL -Datenbankinteraktionen erörtert. Es erklärt ihre Rollen, Unterschiede und liefert ein praktisches Beispiel für ihre Verwendung. Das Hauptargument konzentriert sich auf die Vorteile von usin
