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

PHP无法处理非$_POST方式的JSON格式POST数据问题求助

解决嵌套JSON字符串解析问题

核心问题分析

你获取的php://input内容是被错误包裹的嵌套字符串——请求端实际发送的是var_dump的输出结果,而非纯JSON数据,导致无法直接解析。

解决步骤

  1. 获取并清理原始输入
$rawInput = trim(file_get_contents('php://input'));

用trim()去除前后多余空格,避免干扰后续匹配。

  1. 提取内层纯JSON字符串
    使用正则表达式匹配被双引号包裹的JSON结构,这种方法适配不同长度的内容,比固定截取更可靠:
preg_match('/"({.*})"/', $rawInput, $matches);
  1. 解析JSON并访问目标字段
    检查匹配结果,成功提取后用json_decode解析,按需转为数组或对象:
if (isset($matches[1])) {
    // 转为关联数组,通过$data['job_uid']访问
    $dataArray = json_decode($matches[1], true);
    echo $dataArray['job_uid']; // 输出12345

    // 或者转为对象,通过$data->job_uid访问
    $dataObj = json_decode($matches[1]);
    echo $dataObj->job_uid; // 输出12345
}

根源优化建议

如果能接触到请求发送端,建议修正发送逻辑:直接发送纯JSON数据(同时设置请求头Content-Type: application/json),不要将var_dump的输出作为请求体发送,从根源避免此类问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:10:27