Heim  >  Artikel  >  Backend-Entwicklung  >  So konvertieren Sie JSON-Objekte schnell in Arrays oder Objektarrays in PHP

So konvertieren Sie JSON-Objekte schnell in Arrays oder Objektarrays in PHP

PHPz
PHPzOriginal
2023-04-27 16:38:11620Durchsuche

Mit der kontinuierlichen Weiterentwicklung der Internettechnologie ist die Dateninteraktion zu einem wichtigen Bestandteil der Entwicklung von Internetanwendungen geworden. Bei der Webentwicklung kommt der „Dateninteraktion“ eine besondere Bedeutung zu. Auch bei der Entwicklung von Webanwendungen kommt die Konvertierung von Datenformaten häufig zum Einsatz.

In der Dateninteraktion ist JSON ein sehr beliebtes Datenformat, über das Datenobjekte oder Arrays an Websites oder Anwendungen übergeben werden können. PHP ist eine stark typisierte interpretierte Skriptsprache. Im Vergleich zu anderen Sprachen ist PHP bequemer zu analysieren und das JSON-Format zu verwenden. In der PHP-Entwicklung ist es außerdem eine häufige Anforderung, einen JSON-formatierten String in ein Array oder Objekt zu konvertieren. Anschließend erfahren Sie in diesem Artikel, wie Sie JSON-Objekte schnell in Arrays oder Objektarrays konvertieren.

Was ist das JSON-Format?

JSON ist die Abkürzung für JavaScript Object Notation, ein leichtes Datenaustauschformat. JSON ist eine Sprache zum Austausch von Daten. Es handelt sich um eine Struktur aus Schlüssel-Wert-Paaren, die für die Übertragung von Daten lesbaren Text verwendet.

Das Folgende ist ein einfaches JSON-Beispiel.

{
  "name": "bob",
  "age": 25,
  "address": {
    "city": "beijing",
    "province": "BJ"
  }
}

Daten im JSON-Format werden in geschweifte Klammern eingeschlossen und liegen in Form von Schlüssel-Wert-Paaren vor, die durch Doppelpunkte getrennt sind. Für ein JSON-Objekt muss der Schlüssel eine Zeichenfolge sein, wobei die Schlüssel-Wert-Paare durch Kommas getrennt sind. Im obigen Beispiel sind name, age und address drei Schlüssel, und die entsprechenden Werte sind "bob" code code>, <code>25 und ein weiteres JSON-Objekt. nameageaddress 是三个键,对应的值分别是 "bob"25 和另外一个JSON对象。

PHP中解析JSON格式

PHP提供了两个内置的函数用于解析JSON字符串:json_encode()json_decode()

  • json_encode():将PHP数组或对象转换为JSON字符串。
  • json_decode():将JSON格式的字符串转换成PHP数组或对象。

下面的示例展示了如何使用json_encode()来将一个PHP数组转换成JSON格式的字符串。

$myArr = array('name' => 'Bob', 'age' => 25, 'address' => array('city' => 'beijing', 'province' => 'BJ'));
$jsonStr = json_encode($myArr);

echo $jsonStr; // 输出 {"name":"Bob","age":25,"address":{"city":"beijing","province":"BJ"}}

同样,我们可以使用json_decode()函数将JSON格式字符串转换为PHP数组。

$jsonStr = '{"name":"Bob","age":25,"address":{"city":"beijing","province":"BJ"}}';
$myArr = json_decode($jsonStr, true);

print_r($myArr); // Array ( [name] => Bob [age] => 25 [address] => Array ( [city] => beijing [province] => BJ ) )

可以发现,json_decode() 函数的返回值是一个PHP数组。如果你想要的是一个PHP对象,可以省略第二个参数,这个时候返回的是PHP对象。如下所示:

$jsonStr = '{"name":"Bob","age":25,"address":{"city":"beijing","province":"BJ"}}';
$myObj = json_decode($jsonStr);

echo $myObj->name; // 输出 Bob
echo $myObj->address->province; // 输出 BJ

接下来,本文将介绍如何将一个JSON对象转化成PHP数组或对象数组。

JSON对象转成数组

上面我们已经介绍了如何将JSON格式的字符串转为PHP数组。但是有时候我们会从外部传进来一个JSON对象,需要将它转换成PHP数组才能更方便地进行处理。下面介绍几种常见的方式来实现JSON对象转为PHP数组。

1. 使用 json_decode()

使用 json_decode() 函数同样可以解决这个问题,但是需要传入第二个参数。

$jsonStr = '{ "name": "bob", "age": 25, "address": { "city": "beijing", "province": "BJ" } }';
$jsonObj = json_decode($jsonStr, true);

print_r($jsonObj);

输出结果:

Array
(
    [name] => bob
    [age] => 25
    [address] => Array
        (
            [city] => beijing
            [province] => BJ
        )

)

在这个例子中,json_decode() 函数的第二个参数设置为 true,表示将JSON对象转化成一个PHP数组。

2. 使用强制类型转换

PHP中有一种强制类型转换的方式:将一个对象强制转换成数组。使用这种方式,可以将一个JSON对象快速转换成PHP数组。

$jsonStr = '{ "name": "bob", "age": 25, "address": { "city": "beijing", "province": "BJ" } }';
$jsonObj = json_decode($jsonStr);
$jsonArr = (array)$jsonObj;

print_r($jsonArr);

输出结果:

Array
(
    [name] => bob
    [age] => 25
    [address] => stdClass Object
        (
            [city] => beijing
            [province] => BJ
        )

)

需要注意的是,使用强制类型转换方式时需要注意将输出结果中的stdClass对象转化成PHP数组。此时可以使用循环递归的方式解决该问题。为了避免该问题,一般建议使用 json_decode() 函数将JSON对象转化成PHP数组。

JSON对象转成对象数组

我们也可以将JSON对象转换成PHP对象数组。在PHP开发中,实际上更常见的是将一个JSON数组转换成PHP对象数组。下面介绍两种常见的方式来实现JSON对象转为对象数组。

1. 使用json_decode()

可以通过json_decode()和循环递归的方式实现JSON对象转为PHP对象数组。

$jsonStr = '{ "name": "Bob", "age": 25, "address": {"city": "beijing", "province": "BJ"} }';
$jsonObj = json_decode($jsonStr);
$objArr = array();

foreach ($jsonObj as $key => $value) {
    if (is_object($value)) {
        $objArr[$key] = $this->getJSONObj($value);
    } else if (is_array($value)) {
        $arr = array();
        foreach ($value as $item) {
            if (is_object($item)) {
                array_push($arr, $this->getJSONObj($item));
            } else {
                array_push($arr, $item);
            }
        }
        $objArr[$key] = $arr;
    } else {
        $objArr[$key] = $value;
    }
}

var_dump($objArr);

这里的 getJSONObj() 函数将JSON对象转化成PHP 对象数组并返回。

2. 使用array_map()函数

除了循环递归的方式,我们也可以使用 array_map() 函数和匿名函数来实现JSON对象转化成PHP对象数组,代码如下所示:

$jsonStr = '{ "name": "Bob", "age": 25, "address": {"city": "beijing", "province": "BJ"} }';
$jsonObj = json_decode($jsonStr);

$objArr = (array)$jsonObj;
$objArr = array_map(function ($item) {
    if (is_object($item)) {
        return $this->getJSONObj($item);
    } elseif (is_array($item)) {
        return array_map(function ($sub_item) {
            return (is_object($sub_item)) ? $this->getJSONObj($sub_item) : $sub_item;
        }, $item);
    } else {
        return $item;
    }
}, $objArr);
var_dump($objArr);

以上是将JSON对象转为对象数组的两种常见方式,每一种方式都可以根据自己的需求来灵活运用。

总结

本文介绍了如何将JSON格式的数据转换成PHP数组或对象数组。对于PHP开发中JSON格式和数组之间的转换,json_encode()json_decode()

JSON-Format in PHP analysieren🎜🎜PHP bietet zwei integrierte Funktionen zum Parsen von JSON-Strings: json_encode() und json_decode(). 🎜
  • json_encode(): PHP-Array oder -Objekt in JSON-String konvertieren.
  • json_decode(): Konvertieren Sie eine JSON-Formatzeichenfolge in ein PHP-Array oder -Objekt.
🎜Das folgende Beispiel zeigt, wie man mit json_encode() ein PHP-Array in einen JSON-Format-String konvertiert. 🎜rrreee🎜Ähnlich können wir die Funktion json_decode() verwenden, um eine JSON-Formatzeichenfolge in ein PHP-Array zu konvertieren. 🎜rrreee🎜Sie können feststellen, dass der Rückgabewert der Funktion json_decode() ein PHP-Array ist. Wenn Sie ein PHP-Objekt wünschen, können Sie den zweiten Parameter weglassen und das PHP-Objekt wird zurückgegeben. Wie unten gezeigt: 🎜rrreee🎜 Als nächstes wird in diesem Artikel erläutert, wie man ein JSON-Objekt in ein PHP-Array oder Objektarray konvertiert. 🎜🎜JSON-Objekt in Array konvertieren🎜🎜Wir haben oben bereits erklärt, wie man einen JSON-formatierten String in ein PHP-Array konvertiert. Aber manchmal übergeben wir ein JSON-Objekt von außen und müssen es zur bequemeren Verarbeitung in ein PHP-Array konvertieren. Hier sind einige gängige Methoden zum Konvertieren von JSON-Objekten in PHP-Arrays. 🎜

1. Verwenden Sie json_decode()

🎜Die Verwendung der Funktion json_decode() kann dieses Problem ebenfalls lösen, Sie müssen jedoch den zweiten Parameter übergeben . 🎜rrreee🎜Ausgabeergebnis: 🎜rrreee🎜In diesem Beispiel ist der zweite Parameter der Funktion json_decode() auf true gesetzt, was bedeutet, dass das JSON-Objekt in ein PHP konvertiert wird Array. 🎜

2. Erzwungene Typkonvertierung verwenden

🎜Es gibt eine Methode zur erzwungenen Typkonvertierung in PHP: das Erzwingen eines Objekts in ein Array. Mit dieser Methode kann ein JSON-Objekt schnell in ein PHP-Array umgewandelt werden. 🎜rrreee🎜Ausgabeergebnis: 🎜rrreee🎜Es ist zu beachten, dass Sie bei der Verwendung der erzwungenen Typkonvertierung darauf achten müssen, das stdClass-Objekt im Ausgabeergebnis in ein PHP-Array zu konvertieren. Zu diesem Zeitpunkt kann das Problem mithilfe der Schleifenrekursion gelöst werden. Um dieses Problem zu vermeiden, wird generell empfohlen, die Funktion json_decode() zu verwenden, um das JSON-Objekt in ein PHP-Array zu konvertieren. 🎜🎜JSON-Objekt in Objektarray konvertieren🎜🎜Wir können auch JSON-Objekte in PHP-Objektarrays konvertieren. In der PHP-Entwicklung ist es tatsächlich üblicher, ein JSON-Array in ein Array von PHP-Objekten umzuwandeln. Hier sind zwei gängige Methoden zum Konvertieren von JSON-Objekten in Objektarrays. 🎜

1. Verwenden Sie json_decode()

🎜Sie können JSON-Objekte durch json_decode() und Schleifenrekursion in PHP-Objektarrays konvertieren. 🎜rrreee🎜Die Funktion getJSONObj() konvertiert hier das JSON-Objekt in ein Array von PHP-Objekten und gibt es zurück. 🎜

2. Verwenden Sie die Funktion array_map()

🎜Zusätzlich zur Schleifen- und Rekursionsmethode können wir auch die Funktion array_map() und anonyme Funktionen verwenden, um JSON-Objekte zu konvertieren PHP-Objektarrays. Der Code lautet wie folgt: 🎜rrreee🎜Die oben genannten Methoden sind zwei gängige Methoden zum Konvertieren von JSON-Objekten in Objektarrays. Jede Methode kann flexibel entsprechend Ihren eigenen Anforderungen verwendet werden. 🎜🎜Zusammenfassung🎜🎜In diesem Artikel wird erläutert, wie Daten im JSON-Format in ein PHP-Array oder Objektarray konvertiert werden. Für die Konvertierung zwischen JSON-Format und Arrays in der PHP-Entwicklung sind die Funktionen json_encode() und json_decode() sehr nützliche Werkzeuge. Es stehen viele Methoden zur Auswahl, um JSON-Objekte in PHP-Arrays oder Objekt-Arrays zu konvertieren. Der Leser kann basierend auf den tatsächlichen Entwicklungsanforderungen die am besten geeignete Implementierungsmethode auswählen. 🎜

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie JSON-Objekte schnell in Arrays oder Objektarrays 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