在PHP开发中,我们经常需要处理JSON字符串,有时候需要将JSON字符串转为JSON数组。今天我们来学习如何在PHP中将JSON字符串转为JSON数组。
使用json_decode()函数PHP提供了一个非常简单的函数——json_decode(),用于将JSON字符串转为PHP对象或数组。
语法:
mixed json_decode ( string $json [, bool $assoc = FALSE [, int $depth = 512 [, int $options = 0 ]]] )
登录后复制
参数:
json:需要被解码的JSON字符串。assoc:当该参数为TRUE时,将返回array而非object。depth:设置最大深度。默认允许的深度是512,如果超过这个值,将返回NULL。options:二进制掩码,影响解码行为。常用的选项有JSON_HEX_QUOT、JSON_HEX_TAG、JSON_HEX_AMP、JSON_HEX_APOS、JSON_NUMERIC_CHECK、JSON_PRETTY_PRINT、JSON_UNESCAPED_SLASHES、JSON_UNESCAPED_UNICODE等。详细可参见PHP官方文档。示例:
$json_string = {“name”: “Tom”,”age”: 18,”gender”: “male”};
$json_array = json_decode($json_string, true);
print_r($json_array);
登录后复制
输出:
Array
(
[name] => Tom
[age] => 18
[gender] => male
)
登录后复制
在上面的示例中,$json_array就是一个JSON数组。
使用json_decode()解析二维数组如果JSON字符串中包含二维数组,我们可以通过将assoc参数设置为false,再通过 json_decode()函数解析,得到一个stdClass类型的对象,然后可以使用对象属性来获取值。
示例:
$json_string = [{“name”: “Tom”,”age”: 18,”gender”: “male”},{“name”: “Alice”,”age”: 20,”gender”: “female”}];
$json_array = json_decode($json_string, false);
echo $json_array[0]->name;
登录后复制
输出:
Tom
登录后复制
在上面的示例中,$json_array[0]->name就是JSON数组中第一个元素的name属性的值。
将JSON字符串转为PHP对象如果我们希望将JSON字符串转为PHP对象,而不是数组,我们可以将assoc参数设置为false,或者不传递该参数。
示例:
$json_string = {“name”: “Tom”,”age”: 18,”gender”: “male”};
$json_object = json_decode($json_string);
echo $json_object->age;
登录后复制
输出:
18
登录后复制
在上面的示例中,$json_object就是一个PHP对象,我们可以使用对象属性来获取值。
总结
本文介绍了在PHP中将JSON字符串转为JSON数组的两种方法:使用json_decode()函数解析键值对数组和多维数组,以及将JSON字符串转为PHP对象。
无论哪种方法,都可以实现将JSON字符串转为JSONArray,然后使用PHP来获取JSON数据,有助于我们更好地处理数据,开发出更加优秀的应用程序。
以上就是json字符串转为json数组 php的详细内容,更多请关注php中文网其它相关文章!
© 版权声明
1. 本站所提供的源码模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 1311978956@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有佣金分成!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.77ym.top",如遇到无法解压的请联系管理员!
7. 本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有佣金分成!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.77ym.top",如遇到无法解压的请联系管理员!
7. 本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
THE END
暂无评论内容