2016-10-29 89 views
2

我有一個JSON $result = json_decode($result); PHP JSON EX:的Json解碼讀取密鑰值

[ 
    { 
     "X": "Teste1 X", 
     "Y": "Teste1 Y", 
     "Z": "Teste1 Z", 
     "A": { 
      "C": "Teste1 C" 
     }, 
     "B": { 
      "D": "Teste1 D" 
     } 
    } 
    ] 

如何讀取鍵值 「A」 和 「B」?

在 「A」 E 「B」

Key值 「C」 E 「d」?

$result = json_decode($result); 

foreach ($result as $key => $value) { 
    $strx = $value->X; 
    $stry = $value->Y; 
    $strz = $value->Z; 
    if($key == "A") { 
     $strA = $value->C; 
    } 
    if($key == "B") { 
     $strB = $value->D; 
    } 
    $str1 = $value->1; 
    $str2 = $value->2; 
    $str3 = $value->3; 
} 
+0

你的問題的標題是沒有意義的。你的問題不是關於變量'$ result'或調用'json_decode'的語法,而是關於「如何訪問PHP中嵌套對象的json_decode的結果?」的更多信息。 –

回答

2

因爲你的JSON被包裹在[]它將被視爲一個索引數組,因此你$key變量將是值(例如0,1,2等)的索引。

因此,要回答你的問題,得到的A值替換

if($key == "A") { 
    $strA = $value->C; 
} 
if($key == "B") { 
    $strB = $value->D; 

隨着

if(isset($value->A)) { 
    $strA = $value->A->C; 
} 
if(isset($value->B)) { 
    $strB = $value->B->D; 

什麼是你想獲得與$value->1$value->2$value->3

+0

完美很好!!! 我知道它就像[],但不知道如何從那裏做。 謝謝你,GO GO GO和#WORKHARD !!! – iMasterDesign

0

你可以爲了得到結果關聯數組形式傳遞true作爲第二個參數json_decode()

$result = json_decode($result, true); 

然後,你可以簡單地使用數組來得到你想要的值:

$valueA = $result[0]['A']; 
$valueCinA = $result[0]['A']['C']; 
0

你好,這是我們可以輕鬆獲得特定JSON的全部價值的方式。

<?php 

$result = json_decode('{ 
     "X": "Teste1 X", 
     "Y": "Teste1 Y", 
     "Z": "Teste1 Z", 
     "A": { 
      "C": "Teste1 C" 
     }, 
     "B": { 
      "D": "Teste1 D" 
     } 
    }'); 

foreach ($result as $key => $value) { 
    if($key == "A") { 
     $strA = $value->C; 
     echo $strA; 
     echo "<br/>"; 
    }else if($key == "B") { 
     $strB = $value->D; 
     echo $strB; 
     echo "<br/>"; 
    }else{ 
     echo $value; 
     echo "<br>"; 
    } 

}?>