json_encode如何获取原始数组[stdClass Object]

时间:2013-04-06 12:49:23

标签: php json

您好我有这个json:

   [{"org_src":"img\/base\/logo.png","src":"\/cache\/300-logo.png"},

    {"org_src":"\/img\/l2.JPG","src":"\/cache\/6l-2.JPG"},

    {"org_src":"\/img\/studio\/desk.JPG","src":"\/cache\/desk.JPG"}, 

    ...

在解码之前如何查看数组? 如果我使用Json_encode,我会得到这个:

    Array
(
    [0] => stdClass Object
        (
            [og_src] => img/base/logo.png
            [src] => /cache/300-logo.png
        )

    [1] => stdClass Object
        (
            [og_src] => /img/l2.JPG
            [src] => /cache/6l-2.JPG
        )...

什么是stdClass对象? 感谢您提前提供任何帮助。

使用json_decode($ test,true);我会得到这个:

Array
(
    [0] => Array
        (
            [og_src] => img/base/logo.png
            [src] => /cache/logo.png
        )

    [1] => Array
        (
            [og_src] => /img/studio/l2.JPG
            [src] => /cache/6l-2.JPG
...

这无助于我了解原始数组的外观。

这是答案。这就是我所寻求的。谢谢你的任何建议。

$stack[0][org_src]= "Hallo";
$stack[0][src] = "scrkjh";

$stack[1][org_src] = "Halfgfglo";
$stack[1][src] = "scrkjh";
json_encode($stack);

3 个答案:

答案 0 :(得分:1)

stdClass是PHP中所有对象的基类。如果json_decode()之类的函数创建的对象不是特殊的类类型,或者其他数据类型将被转换为对象,则stdClass将用作数据类型。

您可以将其与Java中的Object数据类型进行比较。


您问了一个示例如何访问stdClass的属性,或者通常是PHP中的对象属性。使用->运算符,如下所示:

$result = json_decode($json);

// access 'src' property of first result:
$src = $result[0]->src;

答案 1 :(得分:1)

你可能意味着json_decode

如果查看文档,如果要获取关联数组而不是对象,则会注意到assoc参数。

所以你应该做

$data = json_decode($data, true);

如果你不想要对象

答案 2 :(得分:0)

stdClass是php的通用空类,有点像Java中的Object或Python中的对象

它对于匿名对象,动态属性等很有用,而Stdclass Object就是它的对象

请参阅PHP和StdClass中的动态属性,例如

另外..正如Marko D所说,您可以使用json_decode($data, true); true来获取关联数组而不是对象。