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

如何将fetch请求PHP接口返回的数组格式字符串转换为实际数组

问题原因

你当前代码中调用了res.text()处理请求响应,这个方法会将返回的所有内容直接解析为纯文本字符串,所以你拿到的是序列化后的JSON格式字符串,而非可直接操作的JavaScript数组。

解决方案

方案1(推荐):使用res.json()解析响应

fetch内置的json()方法可以自动将符合JSON格式的响应字符串直接解析为原生JavaScript数组/对象,修改代码如下:

fetch("./php/getuser.php", { method: "GET" })
.then((res) => res.json())
.then((data) => {
    console.log(data);
    // 此时data已经是数组类型,可直接通过data[0].name等方式读取属性
});

方案2:手动解析JSON字符串

如果有特殊场景必须先获取纯文本响应,你可以用JSON.parse()手动将字符串转为JS数组/对象:

fetch("./php/getuser.php", { method: "GET" })
.then((res) => res.text())
.then((dataStr) => {
    const data = JSON.parse(dataStr);
    console.log(data);
});

注意事项

  • 建议在PHP端输出JSON前添加响应头声明,避免解析异常:
    <?php
    // 放在所有输出之前
    header('Content-Type: application/json');
    // 后续输出json的逻辑
    echo json_encode($your_array);
    ?>
    
  • 可以追加catch捕获JSON解析或请求的异常:
    fetch("./php/getuser.php", { method: "GET" })
    .then((res) => res.json())
    .then((data) => {
        console.log(data);
    })
    .catch((err) => {
        console.error('请求或解析失败:', err);
    });
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:54:00