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]"