Php 从json解码响应中获取变量值

Php 从json解码响应中获取变量值,php,html,json,response,Php,Html,Json,Response,我有一个json响应,它被解码成一个数组$data作为 stdClass Object ( [outboundSMSMessageRequest] => stdClass Object ( [deliveryInfoList] => stdClass Object ( [deliveryInfo] => stdClass Object ( [address] => 8606142527 [deliveryStatus] => Submitted ) [resourc

我有一个json响应,它被解码成一个数组$data作为

stdClass Object ( [outboundSMSMessageRequest] => stdClass Object ( [deliveryInfoList] => stdClass Object ( [deliveryInfo] => stdClass Object ( [address] => 8606142527 [deliveryStatus] => Submitted ) [resourceURL] => http://api-testmobile.com/smsmessaging/1/outbound/OPNHSE/requests/urn:uuid:0f55fd13-a419-4ad9-adec-3dcf63ca39c1/deliveryInfos ) [senderAddress] => OPNHSE [outboundSMSTextMessage] => stdClass Object ( [message] => Sam has requested a payment of Rs 10.00. ) [clientCorrelator] => [receiptRequest] => stdClass Object ( [notifyURL] => [callbackData] => ) [senderName] => [resourceURL] => http://api-openhouse.testingmobile.com/smsmessaging/1/outbound/OPNHSE/requests/urn:uuid:0f5-a419-4ad9-adec-3dcf63ca39c1 ) )
我想将
[deliveryStatus]=>Submitted
此“已提交”存储到变量中

我尝试了
$dStatus=$data['deliveryStatus']但它不工作:(

更新

我试图通过json_decode($data,TRUE)将其转换为关联数组


我明白了。现在如何获取deliveryStatus变量?

我建议查看您正在输出的HTML的视图源,或者将
打印\r
包装在

$data = json_decode($response);
$dStatus = $data->outboundSMSMessageRequest->deliveryInfoList->deliveryInfo->deliveryStatus;
如果是数组,则:

$dStatus=$data['deliveryStatus'];

您可以看到,
deliveryStatus
条目在第一种情况下嵌套在子对象中,在第二种情况下嵌套在子数组中。

如果要将其访问为关联数组,应首先将其转换为关联数组。将
TRUE
作为第二个参数传递给
json\u decode
函数,如文档中所述:

这是因为您以错误的方式访问数据。json_decode返回一个对象,因此您需要作为对象属性访问这些字段。例如:

而不是

$dStatus=$data->deliveryStatus;
尝试成员访问格式

$myJson = json_decode($data,true);
如果希望以关联数组的形式访问数据,这也非常简单

调用
json\u decode
时,将
true
作为第二个参数传递:


有关详细信息,请参阅。

我尝试了成员访问格式,但错误地说这是一个未定义的变量。请确保成员“路径”正确。我还没有机会详细查看您返回的对象(同时尝试查看我2岁的女儿:p):D谢谢。我会检查它,但我收到这样一条消息:尝试获取非对象的属性“$dStatus=$status->OutboundSMessageRequest->deliveryInfoList->deliveryInfo->deliveryStatus;echo$dStatus;”确保它不是嵌入其中的对象数组,在这种情况下,您需要使用数组表示法。我尝试了这一操作,但遇到了一个PHP错误遇到严重性:注意消息:尝试获取非对象文件名的属性:controllers/dash.php行号:138您需要知道如何调试代码…首先,查看第138行,并使用
print\r
检查您试图访问的对象。您能告诉我如何从关联数组中获取该变量吗。我已经更新了数组格式的问题,它是相同的,但是使用[]而不是->,所以:$data['OutboundsSMessageRequest']['deliveryInfoList']['deliveryInfo']['deliveryStatus']我实际上没有得到它,你能更新你的答案吗。我是json新手。
$dStatus=$data->deliveryStatus;
$myJson = json_decode($data,true);