嗨,我知道这可能很容易,但是我已经尝试过并且仍然很短。我想获取结果代码的值,但仍无法打印出来,因此可以执行if语句
//loop through json array
$str = file_get_contents('Response.json');
$array = json_decode($str, true);
$last = array_pop($array);
echo "<pre>";
echo $last[0];
//echo $last[0]['Body']['stkCallback']['ResultCode'];
行echo $ last [0]起作用并给我
{"Body":{"stkCallback":{"MerchantRequestID":"16421-6174532-2","CheckoutRequestID":"ws_CO_DMZ_99605283_17102018133825256","ResultCode":1036,"ResultDesc":"[STK_CB - ]SMSC ACK timeout."}}}
但是
$last[0]['Body']['stkCallback]['ResultCode']
仅回显{
谢谢
答案 0 :(得分:0)
这是因为您仍从此行获取json。您还需要对其进行解码:
print_r(json_decode($last[0],true));
这应该返回您需要的数组。
请记住,您可以echo
的事实意味着它仍为json格式,否则会出现错误。
答案 1 :(得分:0)
好像您回显$last[0]
时看到的是另一个json字符串,而不是对象。您也需要对其进行解码:
$last = json_decode(array_pop($array), true);
print_r($last);
答案 2 :(得分:0)
似乎您的某些数组值存在json字符串, 如果是这样,可能是solution