不能使用 stdClass 类型的对象作为数组 - JSON



我正在使用.json文件,我有以下功能:

//Rights array (WRITE, CREATE, DELETE, ADDUSERS, DELETE USERS)
function addUser($requester, $username, $rights) {
    $file = $requester->getFolder() . "Projects/" . $this->name . "/Data/users.json";
    $json = json_decode(file_get_contents($file, false));
    $json[$username] = array("write" => $rights[0], "create" => $rights[1], "delete" => $rights[2], "adduser" => $rights[3], "deleteuser" => $rights[4]);
    file_put_contents($file, json_encode($json));
}   

每当我运行使用该函数的代码时,都会收到以下错误:

致命错误: 不能在 stdClass 中使用类型为数组的对象...

json_decode 的第二个参数默认为 false,这意味着它将生成一个对象。 使用 true 生成数组。

该错误来自您以数组形式访问$json $json[$username]。 当它是一个对象时,您可以像这样访问它:$json->$username .

最新更新