Hallo Alex,
Idee war, dass ich über eine Referenztabelle den "Speicherort" aus allen APIs auslese und die Daten so meinem Datenobjekt einfach zuordnen kann.
bezeichnung | API1 | API2 | API3 | ... name benutzer->name | name | ... | ...
das ist doch schon mal eine viel bessere Beschreibung! Wie kommen die Daten denn in die Tabelle? Wenn die einigermaßen statisch ist, kannst Du das doch auch direkt in PHP machen. Z.B. (wenn Du OOP nutzt) durch eigene "Wrapper"-Klassen.
Beispiel (auch ungetestet, geht ja nur um's Prinzip):
abstract class ApiValues
{
protected $_valueObj = null;
public function __construct(stdObj $valueObj)
{
$this->_valueObj = $valueObj;
}
public abstract function getName();
}
class Api1 extends ApiValues
{
public function getName()
{
return $this->_valueObj->benutzer->name;
}
}
class Api2 extends ApiValues
{
public function getName()
{
return $this->_valueObj->name;
}
}
// Verwendung
$apiType = 'Api1';
$parsedJson = $deinGeparstesJsonObjekt;
switch ($apiType) {
case 'Api1':
$apiValues = new Api1($parsedJson);
break;
case 'Api2':
$apiValues = new Api2($parsedJson);
break;
}
$name = $apiValues->getName();
Ist zwar was mehr Arbeit, so hast Du es aber übersichtlich, sauber und einen einfachen Zugriff auf die Werte. Musst Du natürlich auch nicht in einem Objekt machen, das geht grundsätzlich auch mit einfachen if-else- oder switch-Anweisungen, die dürften aber schnell relativ unübersichtlich werden.
Gruß, Dennis