我有一个JSON响应,并且我尝试了多种方法来提取具有(APPROVED)的值,但是这很困难这是回应:PHP,JSON2028000NGNDepositSecure3D{"lkpTransactionId":"1100037249","lkpErrorNo":"0","lkpErrorDescription":"Approved","lkpEnrolled":"Y","lkpEciFlag":"02","authSend":"Y","authErrorNo":"0","authErrorDescription":"Approved","authCavv":"jHyn+7YFi1EUAREAAAAvNUe6Hv8=","authXid":"O0KGgwbJpRpdB8cw4OUfee34PkA=","authEciFlag":"02","authPAResStatus":"Y"}Successful64086914117475714319752028000052019545301******41541100037249MASTERCARDSamuel Adah00SuccessfultrueSUCCESSFULPAYMENT我想以数组或字符串形式获取每个结果。感谢你们。更新:我能够听从您的建议,结果如下:array(12) { ["lkpTransactionId"]=> string(10) "1100037249" ["lkpErrorNo"]=> string(1) "0" ["lkpErrorDescription"]=> string(8) "Approved" ["lkpEnrolled"]=> string(1) "Y" ["lkpEciFlag"]=> string(2) "02" ["authSend"]=> string(1) "Y" ["authErrorNo"]=> string(1) "0" ["authErrorDescription"]=> string(8) "Approved" ["authCavv"]=> string(28) "jHyn+7YFi1EUAREAAAAvNUe6Hv8=" ["authXid"]=> string(28) "O0KGgwbJpRpdB8cw4OUfee34PkA=" ["authEciFlag"]=> string(2) "02" ["authPAResStatus"]=> string(1) "Y"} 对我来说,获取authErrorDescription的价值真的很困难。我尝试了这个:foreach($res as $user){ echo $user[8]['authErrorDescription'].'<br/>'; //echo $user[0]->authErrorDescription; }但是结果没有正确显示。
1 回答
忽然笑
TA贡献1806条经验 获得超5个赞
在您的示例中,这不是json。杰森(Json)以{
您可以使用此代码将json转换为php Array
$res = json_decode('{"lkpTransactionId":"1100037249","lkpErrorNo":"0","lkpErrorDescription":"Approved","lkpEnrolled":"Y","lkpEciFlag":"02","authSend":"Y","authErrorNo":"0","authErrorDescription":"Approved","authCavv":"jHyn+7YFi1EUAREAAAAvNUe6Hv8=","authXid":"O0KGgwbJpRpdB8cw4OUfee34PkA=","authEciFlag":"02","authPAResStatus":"Y"}',true);
var_dump($res);
如果您有响应(出于任何原因),则必须在使用json_decode之前解析此字符串。
strpos($str,'{')-将返回字符串中“ {”的位置
substr-将返回所需的字符串部分。
最终,您应该像这样:
$res = json_decode(substr($yourString,strpos($yourString,'{'),strpos($yourString,'}') - strpos($yourString,'{')+1),true);
- 1 回答
- 0 关注
- 165 浏览
添加回答
举报
0/150
提交
取消