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


json_encode how to get the orginal array [stdClass Object]

你好,我有这个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(美元测试,真实);我会得到这个:

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);

你可能指的是json_decode

如果你看一下文档,你会注意到如果你想获得关联数组而不是对象,有一个assoc参数。

所以你应该做

$data = json_decode($data, true);

如果你不想要对象

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

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


你问了一个如何访问stdClass的属性的例子,或者一般来说,PHP中的对象属性。使用->操作符,像这样:

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

stdClass是php的泛型空类,有点像Java中的Object或Python中的Object

对于匿名对象,动态属性等非常有用,Stdclass Object是它的对象

参见PHP和StdClass中的动态属性示例

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