PHP中如何从JSON字符串提取success值并进行条件判断
提取JSON中success值并判断的PHP实现方案
没问题,我帮你整理了两种实用的PHP实现方式,你可以根据自己的编码习惯选择:
方式一:关联数组处理法
这种方式把JSON转成PHP关联数组,用键名直接访问值,比较直观:
// 先把接口返回的JSON字符串存起来 $jsonStr = '{"success":"true","type":"API","totalprice":"1","totalgsm":"1","remaincredit":"491 SMS","results":[{"status":"OK","messageid":"263db4bc-321f-5d2e-8d3a-454bf0d2bda2","gsm":"923100000003"}]}'; // 将JSON转为关联数组(第二个参数传true) $responseArr = json_decode($jsonStr, true); // 先检查JSON解析是否成功,避免格式错误导致后续报错 if ($responseArr === null) { echo "JSON格式有误,解析失败"; } else { // 注意这里success是字符串"true",不是布尔值,要严格匹配 if ($responseArr['success'] === 'true') { // 这里写success为true时要执行的代码 echo "操作成功!开始执行第一个if语句的逻辑\n"; // 比如还可以顺便提取results里的消息ID $msgId = $responseArr['results'][0]['messageid']; echo "返回的消息ID:" . $msgId; } else { // success不为true时的处理逻辑 echo "操作未成功,请检查请求"; } }
方式二:对象处理法
如果你更习惯用面向对象的方式访问属性,就用这个:
$jsonStr = '{"success":"true","type":"API","totalprice":"1","totalgsm":"1","remaincredit":"491 SMS","results":[{"status":"OK","messageid":"263db4bc-321f-5d2e-8d3a-454bf0d2bda2","gsm":"923100000003"}]}'; // 转为PHP对象(第二个参数不传true) $responseObj = json_decode($jsonStr); if ($responseObj === null) { echo "JSON解析失败,请检查返回内容"; } else { if ($responseObj->success === 'true') { // 执行success为true时的代码 echo "操作成功,执行对应业务逻辑\n"; $msgId = $responseObj->results[0]->messageid; echo "消息ID:" . $msgId; } else { echo "操作失败"; } }
小提示:
- 一定要注意返回的
success是字符串类型的"true",不是布尔值true,所以判断时要用=== 'true'做严格匹配,防止类型自动转换引发的错误。 - 加上
json_decode的返回值检查很重要,万一接口返回的JSON格式出错,能及时捕获问题,避免后续代码崩溃。
内容的提问来源于stack exchange,提问作者AngelCause
相关产品推荐
相关产品推荐

