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

So konvertieren Sie JSON in ein Array in PHP

PHPz
PHPzOriginal
2023-04-20 13:52:43478Durchsuche

In der Webentwicklung ist JSON (JavaScript Object Notation) ein häufig verwendetes Datenaustauschformat. In PHP können Sie mit der Funktion json_decode() ganz einfach JSON-formatierte Daten in ein PHP-Array konvertieren.

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

Verwenden Sie die Funktion json_decode() in PHP, um Daten im JSON-Format in ein Array zu konvertieren. Die Syntax dieser Funktion lautet: json_decode()函数将JSON格式的数据转换成数组,该函数的语法为:

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )

参数说明:

  1. json:待解码的JSON字符串。
  2. assoc:当该参数为true时,将返回数组形式的对象,而不是默认的对象形式。
  3. depth:指定最大解析深度。默认值为512。
  4. options:用于控制解析行为的选项,包括JSON_BIGINT_AS_STRING、JSON_INVALID_UTF8_IGNORE、JSON_INVALID_UTF8_SUBSTITUTE、JSON_OBJECT_AS_ARRAY、JSON_THROW_ON_ERROR。默认值为0。

下面是一个将JSON转换成PHP数组的示例代码:

<?php
// JSON字符串
$json_str = &#39;{"name":"Tom", "age":18, "gender":"male"}&#39;;

// 将JSON字符串转换成PHP数组
$arr = json_decode($json_str, true);

// 输出转换后的PHP数组
print_r($arr);
?>

输出结果为:

Array
(
    [name] => Tom
    [age] => 18
    [gender] => male
)

在上面的代码中,首先定义了一个JSON字符串,然后使用json_decode()函数将JSON字符串转换成PHP数组,最后通过print_r()函数输出转换后的PHP数组。

如果你不需要将JSON转换成PHP数组形式,而是保留为JSON对象形式,那么可以省略json_decode()函数中的第二个参数。示例代码如下:

<?php
// JSON字符串
$json_str = &#39;{"name":"Tom", "age":18, "gender":"male"}&#39;;

// 将JSON字符串转换成JSON对象
$obj = json_decode($json_str);

// 输出转换后的JSON对象
print_r($obj);
?>

输出结果为:

stdClass Object
(
    [name] => Tom
    [age] => 18
    [gender] => male
)

在上面的代码中,json_decode()函数中没有传入第二个参数,因此转换后得到的结果为JSON对象形式,而不是数组形式。

使用json_last_error()函数检查JSON解码的错误

在使用json_decode()函数解码JSON时,如果JSON字符串格式不正确,解码过程可能会产生错误。此时可以使用json_last_error()函数检查JSON解码的错误。该函数的语法为:

int json_last_error ( void )

下面是一个检查JSON解码错误的示例代码:

<?php
// JSON字符串
$json_str = &#39;{"name":"Tom", "age":"18", "gender":"male"}&#39;;

// 将JSON字符串转换成PHP数组
$arr = json_decode($json_str, true);

// 检查解码是否出错
if (json_last_error() != JSON_ERROR_NONE) {
    echo &#39;JSON decode error: &#39; . json_last_error_msg();
} else {
    print_r($arr);
}
?>

在上面的代码中,由于age属性的值是一个字符串而不是一个数字,因此无法将JSON字符串正确地转换成PHP数组。在检查解码过程中,发现存在JSON解码错误,于是通过json_last_error_msg()函数输出错误信息。输出结果为:

JSON decode error: Malformed UTF-8 characters, possibly incorrectly encoded

总结

本篇文章介绍了如何在PHP中使用json_decode()函数将JSON格式的数据转换成PHP数组,以及如何使用json_last_error()rrreee

Parameterbeschreibung:🎜
  1. json: Zu dekodierende JSON-Zeichenfolge.
  2. assoc: Wenn dieser Parameter wahr ist, wird ein Objekt in Array-Form anstelle der Standardobjektform zurückgegeben.
  3. Tiefe: Gibt die maximale Analysetiefe an. Der Standardwert ist 512.
  4. Optionen: Optionen zum Steuern des Parsing-Verhaltens, einschließlich JSON_BIGINT_AS_STRING, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY, JSON_THROW_ON_ERROR. Der Standardwert ist 0.
🎜Das Folgende ist ein Beispielcode zum Konvertieren von JSON in ein PHP-Array:🎜rrreee🎜Das Ausgabeergebnis ist:🎜rrreee🎜Im obigen Code wird zuerst eine JSON-Zeichenfolge definiert und dann json_decode() konvertiert den JSON-String in ein PHP-Array und gibt schließlich das konvertierte PHP-Array über die Funktion print_r() aus. 🎜🎜Wenn Sie JSON nicht in die PHP-Array-Form konvertieren müssen, sondern es als JSON-Objektform behalten müssen, können Sie den zweiten Parameter in der Funktion json_decode() weglassen. Der Beispielcode lautet wie folgt: 🎜rrreee🎜Das Ausgabeergebnis ist: 🎜rrreee🎜Im obigen Code wird der zweite Parameter nicht in der Funktion json_decode() übergeben, sodass das Ergebnis nach der Konvertierung vorliegt die Form eines JSON-Objekts und nicht die eines Arrays. 🎜🎜Verwenden Sie die Funktion json_last_error(), um JSON-Dekodierungsfehler zu überprüfen. 🎜🎜Wenn Sie die Funktion json_decode() zum Dekodieren von JSON verwenden und das JSON-String-Format falsch ist, kann der Dekodierungsprozess Fehler erzeugen. Zu diesem Zeitpunkt können Sie die Funktion json_last_error() verwenden, um JSON-Dekodierungsfehler zu überprüfen. Die Syntax dieser Funktion lautet: 🎜rrreee🎜 Hier ist ein Beispielcode zur Überprüfung auf JSON-Dekodierungsfehler: 🎜rrreee🎜 Im obigen Code, da der Wert des Attributs age eine Zeichenfolge und kein a ist Zahl, Daher kann der JSON-String nicht korrekt in ein PHP-Array konvertiert werden. Während des Dekodierungsvorgangs wurde festgestellt, dass ein JSON-Dekodierungsfehler vorlag, sodass die Fehlermeldung über die Funktion json_last_error_msg() ausgegeben wurde. Das Ausgabeergebnis ist: 🎜rrreee🎜Zusammenfassung🎜🎜In diesem Artikel wird erläutert, wie Sie die Funktion json_decode() in PHP verwenden, um Daten im JSON-Format in ein PHP-Array zu konvertieren, und wie Sie json_last_error( ) Funktion prüft auf JSON-Dekodierungsfehler. In der tatsächlichen Entwicklung müssen wir häufig Daten im JSON-Format für den Datenaustausch verwenden. Daher ist es für Webentwickler sehr wichtig, JSON in PHP-Arrays umwandeln zu können. 🎜

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