2011-05-12 127 views
2

为json_decode的语法是:PHP json_decode:对象到关联数组

mixed json_decode (string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]]) 

注意第二参数$assoc其是可选的,默认为false。 当此参数为true时,json_decode将对象转换为关联数组。

我的问题是: 是否有每个案例你会不是想要将返回的对象转换为关联数组?

+1

@Adrian这是关于PHP,而不是Javascript。 – dkamins 2011-06-06 19:00:43

+0

我会添加自定义方法来允许序列化和deserialisation(如Serializable接口)的JSON。这允许从对象的json和json中正确构造对象。 – Arend 2011-06-06 19:28:20

+0

@dkamins啊,愚蠢的我...谢谢指正:) – 2011-06-08 09:00:25

回答

2

当要它转换为对象...

5

在PHP如果函数返回一个关联数组,你不能直接访问其成员为Foo()[“XXX”]。但是,如果它返回一个对象,你可以访问成员为foo() - > xxx。

+0

虽然这不再是真实的,它是当这个问题被张贴(当'json_decode()'写),所以它是默认的一个很好的解释值。 – 2017-03-14 17:14:43

0

就我个人而言,我总是会要求一个关联数组,并且比$ assoc = false时返回的对象更容易处理。

但我可以说我已经看到了(主要是各种Web服务客户端库)大多数其他人的代码已经使用json_decode与$ assoc命令=虚假和对象,而不是关联数组。我认为这主要是一个偏好问题,因为我没有看到选择某种方式的特别强烈的理由。

对不起,非应答:-)

0

以我oppinion其一种方式来强调列表之间(在由数字数组表达的PHP)和一个实体(对象)之间的差。这可能更具可读性,因为可以读取使用的访问器([]->)访问哪种数据。

-1

你需要通过与真实值一个额外的参数。 json_decode($ p,true);