PHP json_decode:对象到关联数组

时间:2011-05-12 14:32:07

标签: php associative-array json

json_decode的语法是:

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

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

我的问题是: 是否存在 NOT 想要将返回的对象转换为关联数组的情况?

5 个答案:

答案 0 :(得分:5)

如果一个函数返回一个关联数组,那么在PHP 5.4之前你无法直接访问它的成员为foo()['xxx']。但是,如果它返回一个对象,您可以访问成员为foo() - > xxx。

当然,您可能还有一些库需要您将返回值作为对象访问。

答案 1 :(得分:2)

当您希望将其转换为对象时......

答案 2 :(得分:0)

我个人总是要求一个关联数组,并且发现它比$ assoc = false时返回的对象更容易使用。

但是我会说我见过的大多数其他人的代码(主要是各种Web服务客户端库)已经使用了带有$ assoc = false的json_decode和对象而不是关联数组。我认为这主要是一个偏好问题,因为我没有看到选择这种或那种方式的任何特别有力的理由。

很抱歉没有回答: - )

答案 3 :(得分:0)

在我的观点中,它强调了列表(在数字数组表示的php)和实体(对象)之间的区别。这可能更具可读性,因为可以读取使用的访问器([]->)访问哪种数据。

答案 4 :(得分:-3)

您需要传递一个具有真值的额外参数。 json_decode($ P,TRUE);