Php Json获取密钥
我附和了这一点,并输入了ajaxPhp Json获取密钥,php,json,Php,Json,我附和了这一点,并输入了ajax $result= $this->mpesa->STKPushQuery($checkoutRequestID, 174379, "bfb279f9aa9bdbcf158e97dd71a467cd2e0c893059b10f78e6b72ada1ed2c919"); 我在json中得到的结果是: {"requestId":"","errorCode":"400.
$result= $this->mpesa->STKPushQuery($checkoutRequestID, 174379, "bfb279f9aa9bdbcf158e97dd71a467cd2e0c893059b10f78e6b72ada1ed2c919");
我在json中得到的结果是:
{"requestId":"","errorCode":"400.002.02","errorMessage":"Bad Request - Invalid CheckoutRequestID"}
现在,在我的php代码中,我需要获取errorCode的键,有时它是一个成功的代码,因此当我尝试以下操作时:
if ($result->errorCode=="400.002.02"){
$Data = '{"status":"Submit payment before Checking for it"}';
echo $Data;
这很好,因为错误代码是在Json中找到的。当出现成功消息时,即:
if ($result->successCode=="0"){
$Data = '{"status":"Payment Successful"}';
echo $Data;
}
第一条语句出现错误因为在Json中找不到错误代码
因此,我实际需要的是获取json的密钥(可以是errorCode,也可以是successCode)
i、 e
使用
isset
将实现您的目标:
$mystatusCode = ( isset($result->errorCode) ? $result->errorCode :
( isset($result->successCode) ? $result->successCode :
NULL
)
);
或者您可以直接在if语句中使用它,而无需创建新的单个var:
if (isset($result->errorCode) && $result->errorCode == "400.002.02") {
...
}
elseif (isset($result->successCode) && $result->successCode == "0") {
...
}
您可以使用isset()来检查此密钥是否存在。首先为什么要使用
json\u encode
?这会给你一个字符串,你不能再轻易地访问其中的单个键了…!?我已经做了更改,我甚至还没有完成我的代码。再检查一下
if (isset($result->errorCode) && $result->errorCode == "400.002.02") {
...
}
elseif (isset($result->successCode) && $result->successCode == "0") {
...
}