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

如何通过PHP从JSON字符串中提取特定数据?

修复JSON结构并提取特定数据

首先你的JSON格式存在错误,导致无法正确解析,以下是具体修正和提取数据的方法:

  • 修正无效JSON结构
    原JSON中toppings下的data字段未将多个对象包裹为数组,属于格式错误。修正后的JSON应将data的值用[]包裹,形成合法的数组结构:
$json = '
{
    "type": "donut",
    "name": "Cake",
    "toppings": [{
        "data": [
            { "id": "5002", "type": "Glazed" },
            { "id": "5006", "type": "Chocolate with Sprinkles" },
            { "id": "5004", "type": "Maple" }
        ]
    }]
}';
  • 对象方式提取数据(默认解析方式)
    使用json_decode默认解析为对象后,可通过对象属性链访问目标数据:
$yummy = json_decode($json);
// 提取data数组中第三个元素的id(索引从0开始)
echo $yummy->toppings[0]->data[2]->id; // 输出 5004
  • 关联数组方式提取数据
    若习惯数组操作,可给json_decode传入第二个参数true,将JSON解析为关联数组:
$yummy = json_decode($json, true);
echo $yummy['toppings'][0]['data'][2]['id']; // 输出 5004
  • 排查解析错误
    如果不确定JSON是否合法,可使用json_last_error()检查解析状态:
$yummy = json_decode($json);
if (json_last_error() !== JSON_ERROR_NONE) {
    echo 'JSON解析错误:' . json_last_error_msg();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:54:21