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

So konvertieren Sie ein JSON-Objekt in ein String-Array-Objekt in PHP

PHPz
PHPzOriginal
2023-04-18 09:48:18432Durchsuche

In PHP kann die Funktion json_decode einen JSON-String in ein Objekt oder Array in PHP analysieren, während die Funktion json_encode ein PHP-Objekt oder -Array in einen JSON-String konvertieren kann. Aber manchmal müssen wir JSON-Objekte in String-Array-Objekte konvertieren. Was sollen wir tun?

Angenommen, unser JSON-String sieht so aus:

{
    "name": "Tom",
    "age": 18,
    "hobbies": ["reading", "running", "swimming"]
}

Wir können ihn mit dem folgenden PHP-Code in ein String-Array-Objekt konvertieren:

$json = '{"name":"Tom","age":18,"hobbies":["reading","running","swimming"]}';
$data = json_decode($json, true);

$keys = array_keys($data);
$values = array_values($data);

$str_arr = [];
for ($i = 0; $i < count($keys); $i++) {
    if (is_array($values[$i])) {
        $str_arr[$keys[$i]] = json_encode($values[$i]);
    } else {
        $str_arr[$keys[$i]] = (string) $values[$i];
    }
}

var_dump($str_arr);

Zuerst übergeben wir den JSON-String an die Funktion json_decode und zweitens bedeutet das Setzen dieses Parameters auf true Konvertieren des analysierten JSON in ein assoziatives Array.

Als nächstes verwenden wir die Funktion array_keys, um die Schlüsselnamen des assoziativen Arrays abzurufen, und die Funktion array_values, um die Werte des assoziativen Arrays abzurufen.

Dann durchlaufen wir alle Schlüsselnamen und -werte durch die for-Schleife und bestimmen, ob der Wert ein Array ist. Wenn der Wert ein Array ist, verwenden wir die Funktion json_encode, um ihn in einen JSON-String zu konvertieren. Wenn es sich nicht um einen Array handelt, verwenden wir eine Umwandlung, um ihn in einen String zu konvertieren.

Schließlich verwenden wir den Schlüsselnamen als Schlüssel und die Zeichenfolge als Wert, um ein neues assoziatives Array zu erstellen. Wenn Sie die Funktion var_dump zur Ausgabe der Ergebnisse verwenden, können Sie die folgende Ausgabe erhalten:

array(3) {
  ["name"]=>
  string(3) "Tom"
  ["age"]=>
  string(2) "18"
  ["hobbies"]=>
  string(28) "["reading","running","swimming"]"
}

Wie Sie sehen können, haben wir das JSON-Objekt erfolgreich in ein String-Array-Objekt konvertiert. Der wichtigste Schritt besteht darin, das Array mit der Funktion json_encode in einen JSON-String zu konvertieren.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie ein JSON-Objekt in ein String-Array-Objekt 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