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

如何在PHP中获取AJAX发送的JSON.stringify处理后的数据?

问题解决方法

你的核心问题是**json_decode默认返回的是对象而非数组**,所以用数组下标$data['a']访问会失败。以下是具体解决方案:

方案1:将JSON解码为关联数组

修改PHP代码,给json_decode添加第二个参数true,强制将JSON转为关联数组:

$data = json_decode($_POST['inputData'], true);
$a = $data['a']; // 此时$a会正确获取到数组["1", "2"]

方案2:以对象属性方式访问数据

如果保持json_decode默认行为(返回stdClass对象),需要用对象属性语法访问:

$data = json_decode($_POST['inputData']);
$a = $data->a; // 通过对象属性获取值

额外优化:无需手动JSON.stringify

jQuery的ajax方法支持直接传入JavaScript对象,它会自动将对象编码为表单数据,这样PHP端无需解码即可直接访问:

优化后的JavaScript代码

const myData = {
    a: ["1", "2"],
    b: "3"
};

jQuery.ajax({
    type: "POST",
    url: my_ajax_site_url,  
    dataType: 'json',
    data: {
        action: "my_php_function",
        inputData: myData // 直接传对象,jQuery自动处理编码
    },
    success: function(response) { 
    },
});

对应PHP代码

$a = $_POST['inputData']['a']; // 直接通过数组下标访问嵌套数据

调试建议

如果仍有问题,可以先打印解码后的数据结构,确认数据是否正确接收:

var_dump($data); // 查看$data的类型和内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 11:10:02