2016-10-29 63 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>"; 
    } 

}?>