Heim Backend-Entwicklung PHP-Problem So konvertieren Sie ein Objektarray in PHP in das JSON-Format

So konvertieren Sie ein Objektarray in PHP in das JSON-Format

Apr 20, 2023 pm 01:55 PM

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(
   &#39;name&#39; => 'jack',
   'age' => 18,
   'city' => 'beijing'
);

echo json_encode($person);
?>
Nach dem Login kopieren

Ausgabeergebnis:

{"name":"jack","age":18,"city":"beijing"}
Nach dem Login kopieren
Nach dem Login kopieren

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(
   &#39;name&#39; => '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);
?>
Nach dem Login kopieren

Ausgabeergebnis:

{"name":"jack","age":18,"city":"beijing","hobby":["reading","music","sports","travel"],"friends":[{"name":"tom","phone":"13812999010"},{"name":"lily","phone":"13812999020"}]}
Nach dem Login kopieren

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(
   &#39;name&#39; => 'jack',
   'age' => 18,
   'city' => 'beijing'
);

echo json_encode($person, JSON_UNESCAPED_UNICODE);
?>
Nach dem Login kopieren

Ausgabeergebnis:

{"name":"jack","age":18,"city":"beijing"}
Nach dem Login kopieren
Nach dem Login kopieren

$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(
   &#39;name&#39; => '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);
?>
Nach dem Login kopieren

Ausgabeergebnis:

{
   "name": "jack",
   "age": 18,
   "city": "beijing",
   "hobby": [
       "reading",
       "music",
       "sports",
       "travel"
   ],
   "friends": [
       {
           "name": "tom",
           "phone": "13812999010"
       },
       {
           "name": "lily",
           "phone": "13812999020"
       }
   ]
}
Nach dem Login kopieren

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);
?>
Nach dem Login kopieren

Ausgabeergebnis:

{"name":"Manfred","age":"31","city":"\u8f66\u91cc\u96c6\u5bbe\u65af\u514b","UTF8":"こんにちは"}
Nach dem Login kopieren

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 = [&#39;你好&#39;, &#39;こんにちは&#39;, &#39;Привет&#39;];
$json = json_encode($array);
echo $json;

// Error: Malformed UTF-8 characters, possibly incorrectly encoded
Nach dem Login kopieren

Ausgabeergebnis:

Error: Malformed UTF-8 characters, possibly incorrectly encoded
Nach dem Login kopieren

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 = [&#39;你好&#39;, &#39;こんにちは&#39;, &#39;Привет&#39;];
$json = json_encode(array_map(function ($str) {
   return mb_convert_encoding($str, &#39;UTF-8&#39;, &#39;UTF-8&#39;);
}, $array));
echo $json;
?>
Nach dem Login kopieren

Ausgabeergebnis:

["你好","こんにちは","Привет"]
Nach dem Login kopieren

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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8 JIT (Just-in-Time) -Kompilation: Wie es die Leistung verbessert. PHP 8 JIT (Just-in-Time) -Kompilation: Wie es die Leistung verbessert. Mar 25, 2025 am 10:37 AM

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.

OWASP Top 10 PHP: Beschreiben und mildern gemeinsame Schwachstellen. OWASP Top 10 PHP: Beschreiben und mildern gemeinsame Schwachstellen. Mar 26, 2025 pm 04:13 PM

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.

PHP Secure-Datei-Uploads: Verhindern von Sicherheitslücken im Zusammenhang mit Datei. PHP Secure-Datei-Uploads: Verhindern von Sicherheitslücken im Zusammenhang mit Datei. Mar 26, 2025 pm 04:18 PM

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.

PHP -Verschlüsselung: Symmetrische und asymmetrische Verschlüsselung. PHP -Verschlüsselung: Symmetrische und asymmetrische Verschlüsselung. Mar 25, 2025 pm 03:12 PM

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.

PHP -Authentifizierung & amp; Autorisierung: sichere Implementierung. PHP -Authentifizierung & amp; Autorisierung: sichere Implementierung. Mar 25, 2025 pm 03:06 PM

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.

PHP -API -Rate Begrenzung: Implementierungsstrategien. PHP -API -Rate Begrenzung: Implementierungsstrategien. Mar 26, 2025 pm 04:16 PM

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

Was ist der Zweck von vorbereiteten Aussagen in PHP? Was ist der Zweck von vorbereiteten Aussagen in PHP? Mar 20, 2025 pm 04:47 PM

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.

Was ist der Zweck von MySQLI_Query () und MySQLI_Fetch_assoc ()? Was ist der Zweck von MySQLI_Query () und MySQLI_Fetch_assoc ()? Mar 20, 2025 pm 04:55 PM

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

See all articles