2012-06-14 72 views
-1

我嘗試從json文件中獲取兩條信息:「Principal」和WiFiMAC。我需要它導出名稱和MAC以在數據庫中導出。json不能提取php的孩子

{ 
"messages": 
      {"message":"150 devices(s) returned."}, 
      "devices": 
        {"device": 
      [ 
        {"@id":"121","uuid":"xxx-xxx-xxxxxxxxx-xxx-x-xxxxx","principal":"John Rambo","blockReason":0,"clientId":"anything","compliance":0,"countryCode":49,"countryId":68,"countryName":"Germany","details": 
          [ 
          {"entry":[ 
            {"key":"Model","value":"anything"}, 
            {"key":"AvailableDeviceCapacity","value":57.360877990722656}, 
{"key":"WiFiMAC","value":"123456789012"}]}]}]}} 

和更多的鍵。

我可以提取本金是這樣的:

$json = file_get_contents("test.xml"); 
$json = json_decode($json); 
echo $json->messages->message; 
echo $json->devices->device[1]->principal; 

,但我沒有得到任何機會來提取WiFiMAC。 我需要這個在json中的任何設備,我想我可以用foreach加載每個設備......但第一個是提取WiFiMAC。

+0

請提供適當的JSON字符串... – maxjackie

回答

0

已經複製您的要求,請訪問以下鏈接: http://codepad.org/MhgkTloe

$ret = json_decode($json, true); 
// the principal 
echo $ret['devices']['device'][0]['principal']; 
// This is the path to WiFiMac 
echo $ret['devices']['device'][0]['details'][0]['entry'][2]['key'];