我收到一些數據,這些數據沒有很好的定義並且可能會發生變化(或者至少沒有正式的規範和屬性可能會被添加/刪除)。我無法控制以JSON形式接收的數據,然後將json_decode
轉換爲匿名對象。多級對象中的變量變量
爲了理解數據,我想創建一些映射。假設數據定義的人,是這樣的:
$Data = json_decode($TheRawData);
$Mappings->Personal['Firstname']="FirstName";
$Mappings->Personal['Employer']="Employment->CurrentEmployer";
其中,如果我是做手工這將意味着名字可以在$Data->FirstName
被發現的用人單位是在$Data->Employer->CurrentEmployer
我想將映射的信息存儲在數據庫中以實現可維護性。不幸的是,當我試圖解析爲定義屬性的對象,如下圖所示:
foreach($Mappings->Personal as $Key=>$Value) {
print $Key . ": " . $Data->{$Value};
}
的名字完美的作品(如預期),但它不喜歡的第二項選擇,大概是因爲它跨越多個對象並需要重複查找。
有人可以告訴我,如果有任何方法我可以映射到我的對象的任意位置?
$ Profile是從哪裏來的?我錯過了什麼嗎? – Pete 2012-03-28 10:33:34
謝謝皮特。我現在改變了它。 - 基本 – Pete 2012-03-28 10:40:06
@Pete - 道歉,我沒有刷新此頁面,所以沒有看到您的評論 - 我發現了錯誤並修復了它。以及發現,兩次:) – Basic 2012-03-28 11:24:34