2012-06-15 85 views
0

我從我的JSON所獲得的價值,像這樣:問題與JSON

$adarray = json_decode($addata); 
if($adarray->{'zone'} == 'homepage'){ 
    $chan = 'homepage'; 
}else if($adarray->{'subcat'} == 'main'){ 
    $chan = $adarray->{'cat'}; 
}else{ 
    $chan = $adarray->{'subcat'}; 
} 
echo $chan; 

它的else if和else然而,它完美的作品,我有第一部分的麻煩:

當這JSON數據被解析成if語句,它應該返回'homepage',但它只是返回JSON數據,爲什麼?

{"zone":"homepage"} 
+0

可能是你正在呼應'$ addata',而不是'$ chan' –

回答

1

在php測試器上嘗試了相同的代碼,並獲得了正確的輸出。一旦看到你的代碼是否正確。

這種嘗試自己在http://phptester.net/

<?php 
$adarray = json_decode('{"zone":"homepage"}'); 
if($adarray->{'zone'} == 'homepage'){ 
    $chan = 'homepage'; 
}else if($adarray->{'subcat'} == 'main'){ 
    $chan = $adarray->{'cat'}; 
}else{ 
    $chan = $adarray->{'subcat'}; 
} 
echo $chan; 
+0

謝謝你,你讓我有信心認識到這是一個問題,現在已經解決了,所以謝謝你! –

+0

高興地幫助:) – Ananth

0

請更改代碼這樣

$adarray = json_decode($addata,true); 

所以現在它轉換成數組。並且您可以輕鬆管理陣列或從陣列中獲取數值或數據

+0

這將其轉換成一個關聯數組,這是沒有必要爲了這個目的。 –