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

如何用PHP从JSON文件中提取用户名?

解决PHP提取嵌套转义JSON中的用户名问题

嘿,我懂你为啥卡壳了——你拿到的这个JSON结构有点“套娃”属性啊!咱们一步步拆解来搞定它:

首先看你提供的原始JSON内容:

["{"account":{"username":"test","password":"hey","info":{"ip":"193.90.12.119","proxyMethod":"TOR","time":"2018-03-17 05:32:58"}}}"]

这个结构是一个数组,数组里唯一的元素是一个被转义过的JSON字符串,不是直接可解析的JSON对象。所以只做一次json_decode肯定拿不到用户名,得解码两次才行。

完整解决方案代码

// 1. 读取文件中的JSON内容
$fileContent = file_get_contents('你的文件路径.json');

// 2. 第一次解码:解析外层的数组,得到内部的转义JSON字符串
$decodedArray = json_decode($fileContent, true);
if (json_last_error() !== JSON_ERROR_NONE) {
    echo '外层JSON解码失败:' . json_last_error_msg();
    exit;
}

// 3. 取出数组里的第一个元素(也就是需要二次解码的字符串)
$innerJsonString = $decodedArray[0];

// 4. 第二次解码:把转义的字符串解析成真正的关联数组
$userData = json_decode($innerJsonString, true);
if (json_last_error() !== JSON_ERROR_NONE) {
    echo '内层JSON解码失败:' . json_last_error_msg();
    exit;
}

// 5. 终于可以提取用户名啦!
$username = $userData['account']['username'];

// 测试输出,应该会打印 "test"
echo $username;

额外小提示

如果你习惯用对象而不是关联数组,也可以去掉json_decode的第二个true参数,此时提取用户名的代码就变成:

$username = $userData->account->username;

另外,加上错误处理很实用,能帮你快速排查文件读取失败、JSON格式损坏之类的问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:27:34