You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:16:22