json_decode in eine benutzerdefinierte Klasse
In PHP kann man die Funktion json_decode()
verwenden, um einen JSON-String in ein PHP-Objekt oder ein Array zu konvertieren. Wenn man die JSON-Daten in eine Instanz einer benutzerdefinierten Klasse konvertieren möchte, kann man den zweiten Parameter der json_decode()
-Funktion verwenden, der die Klasse für das resultierende Objekt angibt.
Beispielsweise hat man einen JSON-String wie diesen:
<?php
$json = '{"name":"John Doe","age":30,"email":"[email protected]"}';
Und hat eine benutzerdefinierte Klasse Person
definiert wie diesen:
<?php
class Person
{
public $name;
public $age;
public $email;
}
Sie können eine neue Instanz der Person-Klasse erstellen und ihre Eigenschaften mit den Werten aus dem dekodierten JSON füllen:
<?php
$json = '{"name":"John Doe","age":30,"email":"[email protected]"}';
class Person
{
public $name;
public $age;
public $email;
}
$person_array = json_decode($json, true);
print_r($person_array);
Jetzt kann man die Variable $person
als Instanz der Klasse Person
verwenden, mit den Eigenschaften name
, age
und email
auf die Werte aus dem JSON-String gesetzt.
<?php
$json = '{"name":"John Doe","age":30,"email":"[email protected]"}';
class Person
{
public $name;
public $age;
public $email;
}
$person_array = json_decode($json, true);
$person = new Person();
$person->name = $person_array['name'];
$person->age = $person_array['age'];
$person->email = $person_array['email'];
echo $person->name; // "John Doe"
echo '-';
echo $person->age; // 30
echo '-';
echo $person->email; // "[email protected]"