• 售前

  • 售后

热门帖子
入门百科

php中对内置函数json_encode和json_decode的异常处理处罚

[复制链接]
poney 显示全部楼层 发表于 2021-8-14 14:57:59 |阅读模式 打印 上一主题 下一主题
在php中,json_encode和json_decode是很常用的函数,具体用法可以检察相干文档,这里主要说一下错误处理惩罚。
平常我们在使用这两个方法的时间可能没怎么留意错误处理惩罚,偶尔候如果传入的参数格式不正确就会导致报错了。下面是错误处理惩罚的方式:
json_last_error — 返回末了发生的错误,如果有,返回 JSON 编码解码时末了发生的错误。
  1. int json_last_error ( void )
复制代码
            常量            寄义            可用性                                    JSON_ERROR_NONE            没有错误发生                                        JSON_ERROR_DEPTH            到达了最大堆栈深度                                        JSON_ERROR_STATE_MISMATCH            无效或异常的 JSON                                        JSON_ERROR_CTRL_CHAR            控制字符错误,可能是编码不对                                        JSON_ERROR_SYNTAX            语法错误                                        JSON_ERROR_UTF8            异常的 UTF-8 字符,也许是因为不正确的编码。            PHP 5.3.3                            JSON_ERROR_RECURSION            One or more recursive references in the value to be encoded            PHP 5.5.0                            JSON_ERROR_INF_OR_NAN            One or more NAN or INF values in the value to be encoded            PHP 5.5.0                            JSON_ERROR_UNSUPPORTED_TYPE            指定的范例,值无法编码。            PHP 5.5.0                            JSON_ERROR_INVALID_PROPERTY_NAME            指定的属性名无法编码。            PHP 7.0.0                            JSON_ERROR_UTF16            畸形的 UTF-16 字符,可能因为字符编码不正确。            PHP 7.0.0        
  1. <?php
  2. // 一个有效的 json 字符串
  3. $json[] = '{"Organization": "PHP Documentation Team"}';
  4. // 一个无效的 json 字符串会导致一个语法错误,在这个例子里我们使用 ' 代替了 " 作为引号
  5. $json[] = "{'Organization': 'PHP Documentation Team'}";
  6. foreach ($json as $string) {
  7.     echo 'Decoding: ' . $string;
  8.     json_decode($string);
  9.     switch (json_last_error()) {
  10.         case JSON_ERROR_NONE:
  11.             echo ' - No errors';
  12.         break;
  13.         case JSON_ERROR_DEPTH:
  14.             echo ' - Maximum stack depth exceeded';
  15.         break;
  16.         case JSON_ERROR_STATE_MISMATCH:
  17.             echo ' - Underflow or the modes mismatch';
  18.         break;
  19.         case JSON_ERROR_CTRL_CHAR:
  20.             echo ' - Unexpected control character found';
  21.         break;
  22.         case JSON_ERROR_SYNTAX:
  23.            echo ' - Syntax error, malformed JSON';
  24.         break;
  25.         case JSON_ERROR_UTF8:
  26.             echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
  27.         break;
  28.         default:
  29.             echo ' - Unknown error';
  30.         break;
  31.     }
  32.     echo PHP_EOL;
  33. }
复制代码
php官方参考文档:https://secure.php.net/manual/zh/function.json-last-error.php
到此这篇关于php中对内置函数json_encode和json_decode的异常处理惩罚的文章就介绍到这了,更多相干php处理惩罚json_encode和json_decode异常内容请搜索脚本之家从前的文章或继承浏览下面的相干文章渴望各人以后多多支持脚本之家!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作