无法访问返回的JSON中的数据

时间:2015-03-22 20:04:55

标签: php json laravel

我有一个函数可以返回如下信息:

return json_encode(["id" => 0]);

也尝试了

return json_encode(array("id" => 0));

return json_encode(array("id" => 0), JSON_FORCE_OBJECT);

在调用函数中,我将返回的值存储在$ var变量中。然后我尝试访问" id"要素如下:

$var->id

我得到尝试获取非对象错误的属性。

我在php.net上查看了Stackoverflow上的不同问题,但无法找到解决方案。

1 个答案:

答案 0 :(得分:1)

尝试var_dump'返回值。 json_encode将JSON作为字符串返回,然后可以将其解析为对象或数组。如果$varjson_encode的结果,那么您无法先解析编码数据的任何属性。

根据您修改后的问题:

看起来你真正想要做的就是将一个数组转换为一个对象。您需要做的就是:

$var = (object) ['id' => 0];

JSON_FORCE_OBJECT标志将数组转换为对象并将其编码为。结果仍然是JSON字符串。如果要在该字符串上调用json_decode,则会有一个对象,但这不是将数组转换为对象的正确方法。