在PHP中,从JSON格式的字符串转化成数组是一个非常简单的过程。有两个PHP内置的函数可以用于此目的:json_decode()和json_decode_object()。
1.使用json_decode()函数
json_decode()函数是将JSON格式的字符串转化成PHP数组的常见方式。
语法:
<code>mixed json_decode ( string $json [, bool $assoc = FALSE [, int $depth = 512 [, int $options = 0 ]]] )</code>
其中:
示例:
将JSON格式的字符串转化成数组:
<code><?php $json_string = '{"name": "Tom", "age": 30, "sex": "male"}'; $decoded_json = json_decode($json_string); print_r($decoded_json); ?></code>
输出:
<code>stdClass Object ( [name] => Tom [age] => 30 [sex] => male )</code>
上面的代码中,我们首先定义了一个JSON格式的字符串,然后调用json_decode()函数将该字符串转换成PHP数组$decoded_json,并打印出结果。
如果要将返回结果转换为关联数组,需要将$assoc参数设置为TRUE:
<code><?php $json_string = '{"name": "Tom", "age": 30, "sex": "male"}'; $decoded_json = json_decode($json_string, true); print_r($decoded_json); ?></code>
输出:
<code>Array ( [name] => Tom [age] => 30 [sex] => male )</code>
从上面的输出可以看到,数组$decoded_json与上一次输出的对象不同,这是因为此时$assoc被设置为TRUE,并将其转换为关联数组。如果不设置$assoc,它默认返回对象而不是数组。
2.使用json_decode_object()函数
除了json_decode()函数之外,PHP还提供了另一种将JSON格式的字符串转化成PHP数组的方式,这就是json_decode_object()函数。
语法:
<code>object json_decode_object ( string $json_string [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )</code>
其中:
示例:
将JSON格式的字符串转化成数组:
<code><?php $json_string = '{"name": "Tom", "age": 30, "sex": "male"}'; $decoded_json = json_decode_object($json_string); print_r($decoded_json); ?></code>
输出:
<code>stdClass Object ( [name] => Tom [age] => 30 [sex] => male )</code>
上面的代码中,我们使用json_decode_object()函数将JSON字符串转化成PHP数组$decoded_json。由于我们没有设置$assoc参数,因此它默认返回对象而不是数组。
总结
在PHP中,我们可以使用json_decode()函数和json_decode_object()函数将JSON格式的字符串转化成PHP数组。这两个函数各有优点,选择哪一个取决于您的特定需求。如果您希望结果为对象,那么使用json_decode_object(),如果您希望结果为数组,那么使用json_decode()。在使用过程中,还需要根据实际情况调整$depth和$options参数的值,以避免内存溢出。
以上是把json字符串转成数组 php的详细内容。更多信息请关注PHP中文网其他相关文章!