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

PHP json_decode函数无法解析支付网关返回的JSON数据求助

问题分析与解决:json_decode处理截断后的JSON仍无效

可能原因及解决办法:

  • 截取逻辑不准确:原响应末尾可能不止一个多余字符,或者存在不可见字符(如换行、空格、制表符),导致substr($server_output, 0, -1)只去掉了最后一个字符,但剩余内容仍不合法。
    解决:可以用更精准的方式清理内容,比如:
    • 用rtrim($server_output, '1')去掉末尾所有的“1”;
    • 用正则匹配完整JSON结构:
      preg_match('/^\{.*\}$/s', $server_output, $matches);
      $clean_json = $matches[0] ?? '';
      
  • 未检查JSON解析错误:json_decode失败时会返回null,但你可能误以为返回的是JSON字符串。可以通过PHP内置函数排查具体错误:
    $cleaned = substr($server_output, 0, -1);
    $decoded = json_decode($cleaned, true);
    if (json_last_error() !== JSON_ERROR_NONE) {
        echo '解析错误:' . json_last_error_msg();
    }
    
  • 误解输出结果:如果直接echo $decoded,数组/对象会被转为字符串Array,可能让你误以为还是JSON格式。应该用var_dump($decoded)或者print_r($decoded)查看实际解析后的结构。

内容的提问来源于stack exchange,提问作者JKSDS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:37:09