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

如何将API返回的JSON字符串转为PHP数组

在PHP中将JSON字符串转为数组的方法

刚好我之前也遇到过类似需求,PHP里处理JSON转数组其实很简单,核心就是用json_decode()这个函数,跟JS里的JSON.parse()思路差不多,但要注意一个关键参数。

先看你的示例JSON字符串,我们直接上代码演示:

首先定义你的JSON字符串:

$jsonString = '{ "code":"000", "message":"XXX", "date":"2018-05-17", "hour":"09:16:09", "revision":"", "server":"XX", "content":{ "nome":{"info":"SIM","conteudo":[{"field1":"XXXX","field2":"XX"}]} } }';

接下来用json_decode()转换,一定要把第二个参数设为true,这样返回的就是关联数组,而不是默认的对象:

$responseArray = json_decode($jsonString, true);

现在你就可以像你期望的那样调用数组元素了:

// 获取code值
echo $responseArray['code']; // 输出 000

// 获取嵌套的info值
echo $responseArray['content']['nome']['info']; // 输出 SIM

// 遍历conteudo里的子元素
foreach ($responseArray['content']['nome']['conteudo'] as $item) {
    echo $item['field1']; // 输出 XXXX
}

额外提示:错误处理

如果你的JSON格式有问题(比如语法错误),json_decode()会返回null,这时候可以用这两个函数排查问题:

$responseArray = json_decode($jsonString, true);
if (json_last_error() !== JSON_ERROR_NONE) {
    echo 'JSON解析失败:' . json_last_error_msg();
}

要是你忘了加第二个参数true,返回的会是一个stdClass对象,调用方式就变成$responseObj->code这种对象属性访问的形式,不过既然你想要数组调用,记得加上那个参数就好啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:19:26