我有一个像下面这样的JSON对象,它存储在一个名为$product
的变量中。
{"id":30}
当我尝试访问存储的值时,我收到以下错误:
尝试获取非对象的属性
这是我正在做的事情:
echo $product->id;
好的伙计们,对于野鹅追逐感到抱歉。显然$products
是一个数组而不是JSON数据,这真的很奇怪,因为print_r($products)
和echo $products
给出了不同的结果。
结果可以在这里查看:
我正在使用Laravel,通常laravel从SQL查询中返回一个不错的JSON对象,我必须在某处更改某些内容,这就是为什么会发生这种情况。感谢。
答案 0 :(得分:1)
尝试使用 json_decode 功能
$product = '{"id":30}';
$t = json_decode($product);
echo $t->id;exit;
答案 1 :(得分:0)
您可以将 json_decode 用于您的对象。
采用JSON编码的字符串并将其转换为PHP变量。
<强>使用强>:
print_r(json_decode($obj, true));
var_dump(json_decode($obj));
答案 2 :(得分:0)
尝试以下示例:
<?php
$product = '{"id": 30}';
$obj = json_decode(json_encode($product)); // or json_decode(json_encode($product), true);
echo $obj->{'id'}; // or echo $obj->id
?>
答案 3 :(得分:0)
第一个例子对我有用,请确保PHP支持json_decode()函数。 或者你可以试试这个:
$product = '{"id":30}';
$t = json_decode($product, true);
echo $t["id"];
传递true值会将其转换为数组。