11111

Aus JSON ein neues Objekt einer vorhanden PHP-Klasse erzeugen

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.

Flattr this!

This entry was posted in php and tagged , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


*