Php 如何将.json文件转换为数组
对于我现在正在创建的网站,我需要将.json文件转换为PHP中的数组。 谁能帮帮我,因为我试过了,但出了点问题。你能检查一下我的代码有没有错误,或者改进一下,让它正常工作吗Php 如何将.json文件转换为数组,php,json,Php,Json,对于我现在正在创建的网站,我需要将.json文件转换为PHP中的数组。 谁能帮帮我,因为我试过了,但出了点问题。你能检查一下我的代码有没有错误,或者改进一下,让它正常工作吗 function getData() { $json = ""; $file=fopen("data/data.json","r") or exit("Unable to open file!"); while (!feof($file)) { $json .= fgets($file
function getData() {
$json = "";
$file=fopen("data/data.json","r") or exit("Unable to open file!");
while (!feof($file)) {
$json .= fgets($file);
}
fclose($file);
$data = json_decode($json);
return $data;
}
.json内容的一个示例:
{
"dashboard": {
"title": "Dashboard",
"href": "/dashboard",
},
"settings": {
"title": "Settings",
"href": "/settings",
}
}
编辑1:添加了json文件内容的示例
$json = file_get_contents("data/data.json");
$data = json_decode($json,true);
第二个参数表示希望将其作为数组而不是对象(默认值) 您还应该使用json_last_error()检查json_decode()的错误
您的JSON文件无效,它在每个对象的最后一个元素后面有额外的逗号。应该是:
{
"dashboard": {
"title": "Dashboard",
"href": "/dashboard"
},
"settings": {
"title": "Settings",
"href": "/settings"
}
}
另外,当调用
json\u decode
时,您应该指定第二个参数true
,这样您将得到一个关联数组而不是一个对象作为结果。您可以发布一个文件内容的示例吗?您的代码看起来不错,但是file\u get\u contents
不是比您的循环更简单吗?出了问题。你能说得更具体一点吗?@Barmar it只是不起作用,我试着访问数据,但不知怎么的,数组是空的。如果json_decode阻塞了json,它将返回“null”,但如果你看到一个空数组,我不确定是怎么回事。但是试着通过linter运行json,以确保它是有效的。