Laravel刀片服务器的toArray()和json_decode()之间的差异
在返回$users时,我使用toArray()和json_decode()得到了完全相同的结果。 但是,在我的视图中循环$users时,toArray()方法出现了一个错误('试图获取非object的属性'xxx')。不适用于json_decode()。知道为什么吗?我在拉威尔6号Laravel刀片服务器的toArray()和json_decode()之间的差异,json,laravel,Json,Laravel,在返回$users时,我使用toArray()和json_decode()得到了完全相同的结果。 但是,在我的视图中循环$users时,toArray()方法出现了一个错误('试图获取非object的属性'xxx')。不适用于json_decode()。知道为什么吗?我在拉威尔6号 $client = HttpClient::create(); $response = $client->request('GET', 'https://jsonplaceholder.typico
$client = HttpClient::create();
$response = $client->request('GET', 'https://jsonplaceholder.typicode.com/users');
$users = json_decode($response->getContent());
// $users = $response->toArray();
return $users;
方法返回纯数组。虽然json_decode()键始终是字符串,但值可以是字符串、数字、true或false、null甚至是对象或数组
因此,您正在尝试访问json_decode返回的对象,如果您在编码时有对象,该对象就会工作。但是,当尝试从数组透视图访问对象时,它将不起作用,因为数组是普通数组
Json_decode()的解释
PHP的json_decode函数接受json字符串并将其转换为PHP变量。通常,JSON数据将表示一个JavaScript数组或对象文字,JSON_解码将其转换为PHP数组或对象
解释PHP数组超出了这个范围。然而:
PHP中的数组实际上是一个有序映射。映射是一种将值与键关联的类型。该类型针对多种不同用途进行了优化;可以将其视为数组、列表(向量)、哈希表(映射的实现)、字典、集合、堆栈、队列等。由于数组值可以是其他数组,所以也可以使用树和多维数组
最后,,
您正在尝试访问json_decode返回的对象-工作正常。但数组不会容纳对象,因此它会抛出试图获取非对象属性的对象。非常清楚的解释,非常感谢!这是正确的答案,但不幸的是,StackOverflow不允许我将其标记为:/您将其标记为itO是什么意思?不,很抱歉,它可以工作;-)我想我需要15%的声誉才能接受正确的答案