首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >json_encode/json_decode -返回stdClass而不是数组

json_encode/json_decode -返回stdClass而不是数组
EN

Stack Overflow用户
提问于 2010-02-17 23:35:31
回答 5查看 107.8K关注 0票数 120

观察下面这个小脚本:

代码语言:javascript
复制
$array = array('stuff' => 'things');
print_r($array);
//prints - Array ( [stuff] => things )
$arrayEncoded = json_encode($array);
echo $arrayEncoded . "<br />";
//prints - {"stuff":"things"}
$arrayDecoded = json_decode($arrayEncoded);
print_r($arrayDecoded);
//prints - stdClass Object ( [stuff] => things )

为什么PHP要把JSON对象变成一个类?

如果数组是json_encoded然后是json_decoded,难道不应该产生完全相同的结果吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-02-17 23:38:18

https://secure.php.net/json_decode上仔细查看json_decode($json, $assoc, $depth)的第二个参数

票数 152
EN

Stack Overflow用户

发布于 2010-02-17 23:38:38

代码语言:javascript
复制
$arrayDecoded = json_decode($arrayEncoded, true);

给你一个数组。

票数 91
EN

Stack Overflow用户

发布于 2016-12-01 03:40:04

但是,如前所述,您可以在此处添加第二个参数,以指示您希望返回一个数组:

代码语言:javascript
复制
$array = json_decode($json, true);

许多人可能更喜欢对结果进行转换:

代码语言:javascript
复制
$array = (array)json_decode($json);

阅读起来可能会更清晰。

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

https://stackoverflow.com/questions/2281973

复制
相关文章

相似问题

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