对于我现在正在制作的网站,我需要将.json文件转换为PHP中的数组。 任何人都可以帮助我,因为我已经尝试过,但出了点问题。您能否检查一下我的代码是否有任何错误或改进它以使其正常工作?
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文件内容的示例
答案 0 :(得分:1)
$json = file_get_contents("data/data.json");
$data = json_decode($json,true);
http://uk1.php.net/json_decode
第二个参数表示您希望它作为数组而不是对象(默认值)
您还应该使用json_last_error()来检查json_decode()的错误 http://uk1.php.net/function.json_last_error
答案 1 :(得分:1)
您的JSON文件无效,在每个对象的最后一个元素后面有额外的逗号。它应该是:
{
"dashboard": {
"title": "Dashboard",
"href": "/dashboard"
},
"settings": {
"title": "Settings",
"href": "/settings"
}
}
此外,您应该在调用true
时指定第二个参数json_decode
,因此您将得到一个关联数组而不是一个对象作为结果。