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.