In einem meiner derzeiten Projekte bekomme ich ein JSON-Objekt von einem Scnnittstelleprogramm geliefert und möchte aus diesen Daten ein neues Objekt einer vorhanden Klasse erzeugen.
Dazu hier ein kleines Beispiel:
Als erstes brauchen wir eine PHP-Klasse, das ist zwar optional gehört für mich aber zu guten Stil. Außerdem kann ich hier auch gleich Methoden definieren.
<?php
class TestClass {
public $Name;
public $Nachname;
}
?>
Dann brauchen wir natürlich noch ein valides JSON.
<?php
/* Die Attributnamen müssen dabei denen der PHP-Klasse entsprechen */
$json = '{
"Name": "Max",
"Nachname": "Mustermann"}
';
?>
Jetzt legen wir eine neue Instanz der TestClass an und weisen der dann das JSON zu.
<?php /* Neue Instanz der TestKlasse */ $test = new TestClass(); /* Das JSON einer stdClass zuweisen, diese ist immer die Rückgabe * der Funktion json_decode(). * Das ist leider nötig wir das JSON nicht direkt in ein vorhandenes Objekt * schreiben können, auch wenn das theoretisch möglich wäre */ //stdClass auf JSON erstellen $tmp = json_decode($json); //jedes Attribut dem Zielobjekt zuweisen $test->Name = $tmp->Name; $test->Nachname = $tmp->Nachname; /* Die beiden Attributwerte ausgeben */ echo $test->Name; echo $test->Nachname; ?>
Fragen oder bessere Lösungen bitte in den Kommentaren.