首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel的toArray()和json_decode()差异

Laravel的toArray()和json_decode()差异
EN

Stack Overflow用户
提问于 2020-01-22 10:45:13
回答 1查看 288关注 0票数 0

当只返回$users时,toArray()和json_decode()得到的结果完全相同。但是,在我看来循环$users时,使用toArray()方法得到一个错误(试图获取非对象的属性'xxx‘)。而不是使用json_decode()。知道为什么吗?我在拉拉维尔六号。

代码语言:javascript
复制
   $client = HttpClient::create();
   $response = $client->request('GET', 'https://jsonplaceholder.typicode.com/users');
   $users = json_decode($response->getContent());
// $users = $response->toArray();
   return $users;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-22 10:54:36

toArray()方法返回纯数组。而json_decode()键总是字符串,而值可以是字符串、数字、真或假、null,甚至是对象或数组。

因此,您正在尝试访问json_decode返回的对象,如果您在编码对象时具有对象,则该对象可以工作。但是,当尝试从数组的角度访问对象时,它将无法工作,因为数组是纯数组。

对Json_decode()的解释

PHP的json_decode函数接受JSON字符串并将其转换为PHP变量。通常,JSON数据将表示JavaScript数组或对象文本,json_decode将将其转换为PHP数组或对象。

解释PHP数组超出了这个范围。然而:

中的数组实际上是一个有序映射。映射是将值与键关联的类型。这种类型是针对几种不同的用途进行优化的;它可以被视为数组、列表(向量)、哈希表(映射的实现)、字典、集合、堆栈、队列,等等。由于数组值可以是其他数组,所以树和多维数组也是可能的。

最后,您正在尝试访问json_decode返回的对象--运行良好。但是数组不会保存这样的对象,它会抛出试图获取非对象属性的对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59857917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档