各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > PHP

php中json_decode函数使用方法的而详细介绍

管理员 2023-09-05
PHP
125

php中json_decode函数使用方法的而详细介绍

内容导读

收集整理的这篇技术教程文章主要介绍了php中json_decode函数使用方法的而详细介绍,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2131字,纯文字阅读大概需要4分钟

内容图文

本篇文章给大家带来的内容是关于php中json_decode函数使用方法的而详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

我们都知道使用 json_decode 函数可以用来对 JSON 格式的字符串进行解码。我们常用的形式如下:

<?php$json = 'some_json_data';$result = json_decode($json, true);

实际上 json_decode() 函数拥有多个参数,根据传入的参数的不同,函数的行为也将不同。

解码的数据

你可能见到过 json_decode() 函数报下面的错误:

Warning: json_decode() expects parameter 1 to be string, xxx given in

根据报错信息来看,第一个参数必须为 string 类型,但是,实际上第一个参数可以是下面的三种类型:

  • string

  • null

  • bool

根据参数的类型的不同,函数的返回值也将发生变化。

返回值

json_decode() 函数默认在解析 JSON 数据正确地情况下会返回一个对象。

但是第二个参数传入 true 后或者第四个参数传入 JSON_OBJECT_AS_ARRAY 后,函数将在解析 JSON 数据正确地情况下返回数组而不是对象。

请注意我加黑的文字,json_decode() 函数在解析 JSON 数据正确地情况下返回对象或者数组,但是一些情况下函数将返回其它数据:

  • string 类型并且是正确的 JSON 格式的数据,解码后返回对象或数组

  • 从 PHP 5.6 开始,JSON 数据中存在 true,false 和 null,如果不采用小写格式,将会解码失败,返回 null

  • string 类型的 'true'、'false'、'null' 返回其本身(全部为小写情况下)

  • 其它的 string 类型的参数返回 null

  • true / false / null 直接返回 null

  • 其它类型的数据直接报错

  • 第三个参数递归深度为 1 的时候,直接返回 null

所以我们在使用 foreach 对解码后的数据进行迭代时,需要留意解码后的数据是否为数组,如果不是,那么在迭代时会报错。

可以去 JSON 官方网站去了解什么样的数据才是 JSON 格式的数据,

递归深度

第三个参数表示递归深度,深度必须大于 0,否则报错。当递归深度为 1 时结果为 null,所以递归深度最小值为 2。

解码选项

第四个参数用于设置选项:

  • JSON_PRETTY_PRINT 会填充一些空白字符进去,方便查看

  • JSON_UNESCAPED_SLASHES 不要编码 /

  • JSON_UNESCAPED_UNICODE 不要编码 unicode 字符, 默认是编码成 uXXXX

处理错误

我们也可以结合 json_last_error 函数、json_last_error_msg(PHP >= 5.5) 函数与 @ 操作符一起使用:

<?php$json = 'some_json_data';$result = @json_decode((string)$json, true);if (json_last_error() !== JSON_ERROR_NONE) {    throw new Exception(json_last_error_msg());}

以上就是php中json_decode函数使用方法的而详细介绍的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的php中json_decode函数使用方法的而详细介绍全部内容,希望文章能够帮你解决php中json_decode函数使用方法的而详细介绍所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 lecms, classcms, fastadmin, pbootcms, phpcms, eyoucms, yzmcms, PHP, xunruicms, jizhicms, dedecms, wordpress, hkcms, yzncms, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

扫码关注

qrcode

QQ交谈

回顶部