问题描述
我正在从 PHP 页面调用 REST/JSON api。 这是一个成功的 JSON 响应示例:
{
"code": 0,"message": "","objects":
{
"UserRequest::123":
{
"code": 0,"message": "created","class": "UserRequest","key": 29,"fields":
{
"id": 29,"friendlyname": "R-000029"
}
}
}
}
我只想在页面中回显 id
值,但我无法让它工作。
我试图对响应进行 json_decode
$decoded_response = json_decode($response,true);
如果我 print_r
解码的响应,它看起来像这样:
Array ( [objects] => Array ( [UserRequest::17282] => Array ( [code] => 0 [message] => created [class] => UserRequest [key] => 17282 [fields] => Array ( [id] => 17282 ) ) ) [code] => 0 [message] => )
解决方法
你可以通过这种方式跟随深层元素来获取嵌套的id,
echo $decoded_response['objects']['UserRequest::123']['fields']['id'];
,
但是我怎么知道“UserRequest::123”中的值是什么 这可能就像我的最后一个结果:“UserRequest::17282” 我事先不知道 id 值的嵌套路径。
试过这个:
echo $decoded_response["objects"][0]["UserRequest"]["fields"]["id"];
不工作。
,设法解决它是这样的:
foreach( $decoded_response['objects'] as $k=>$v) {
if ( isset($v['key']) ) {
echo 'Ticket created: ',$v['fields']['friendlyname'],"\r\n";
}
}