首页  >  文章  >  后端开发  >  把json字符串转成数组 php

把json字符串转成数组 php

PHPz
PHPz原创
2023-04-23 09:17:15129浏览

在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:需要解析的json字符串;
  • $assoc:是否将返回的对象转换为关联数组,值为TRUE则转为关联数组,默认不转换;
  • $depth:设置递归的深度,默认是512,为了避免内存溢出,可以根据实际情况调整该值;
  • $options:可选参数,可以指定解析JSON的选项。

示例:

将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_string:需要解析的json字符串;
  • $assoc:是否将返回的对象转换为关联数组,值为TRUE则转为关联数组,默认不转换;
  • $depth:设置递归的深度,默认是512,为了避免内存溢出,可以根据实际情况调整该值;
  • $options:可选参数,可以指定解析JSON的选项。

示例:

将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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn