2012-06-14 30 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'];