2016-11-09 111 views
0

解碼JSON字符串後,我會得到很多嵌套對象。例如檢查對象樹中是否存在對象

{ 
    clients: 
    { 
     latest: 
     { 
      business: 
      { 
       name: 
       { 

       } 
      }, 
      personal: 
      { 
       name: 
       { 

       } 
      } 
     }, 
     first: 
     { 

     } 
    } 
} 

現在,我試圖訪問即$result->clients->latest->business->name

如果latest不存在,那麼我會得到我想要得到非對象的財產的通知(因爲latest不存在因此是非對象,因此我不能撥打->name)。

我如何檢查「對象路徑」存在,而不做

isset($result) ? isset($result->clients) ? isset($result->clients->latest) ... 

回答

0
$array=json_decode($result,true); 
if(isset($array['clients']['latest']['business']['name'])) 
{ 
//do something... 
} 

通過json_decode($result,true)功能,您可以convret的JSON數組,然後就檢查值設置與否。

+0

這就是一個很好的方式,但它的評論,請解釋更得到一個很好的答案可以是+ 1'ed – Bobot

0

使用嘗試捕捉:

try{ 
    $name= $result->clients->latest->business->name; 
}catch(Exception $e){ 
    $name = ''; 
}