以下是我的json
回复,我使用json_decode
来转换php object
中的回复,状态为'和' msg'转换成功但问题是' amt'。如何获得' amt'在php对象?
$amt=$response->transaction_details['amt'];
无效。
{" status":1," msg":"交易成功获得"," transaction_details":{" 686868686505& #34; {" payid":" 293642892"" AMT":" 10.00"" txnid" :" 686868686505"" additional_charges":" 0.00"" productinfo":"衬衫"&#34 ;姓名":" WILLIAM}}}
$response = json_decode($o,true);
$msg = $response['msg'];
$status = $response['status'];
$amt=$response->transaction_details->['amt'];
echo '<br>';
echo $amt;
echo '<br>';
echo $msg;
echo '<br>';
echo $status;
成功获得的交易
1
答案 0 :(得分:1)
您正在将数组与对象混合。
json_decode
第二个参数将让你获取json对象或json数组,它将返回json对象,如果它为null或false,并返回json数组,如果你将第二个参数设置为true或任何转换为真。
在php.net中查看它的文档
这样,您需要将其更改为:
$response = json_decode($o); // or json_decode($o, false);
$msg = $response->msg;
$status = $response->status;
//since you use all numbers for json property, I'll assume this would fail
$amt=$response->transaction_details->686868686505->amt;
echo '<br>';
echo $amt;
echo '<br>';
echo $msg;
echo '<br>';
echo $status;
或者如果您喜欢使用数组
$response = json_decode($o,true);
$msg = $response['msg'];
$status = $response['status'];
$amt=$response['transaction_details']['686868686505']['amt'];
echo '<br>';
echo $amt;
echo '<br>';
echo $msg;
echo '<br>';
echo $status;