如何将.json文件转换为数组

时间:2014-02-21 15:19:51

标签: 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);
    }
    fclose($file);

    $data = json_decode($json);
    return $data;
}

.json内容的一个例子:

{
    "dashboard": {
        "title": "Dashboard",
        "href": "/dashboard",
    },
    "settings": {
        "title": "Settings",
        "href": "/settings",
    }
}

编辑1:添加了json文件内容的示例

2 个答案:

答案 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,因此您将得到一个关联数组而不是一个对象作为结果。