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

2023-01-21 0 801

在php中,json_encode和json_decode是很常用的函数,具体用法可以查看相关文档,这里主要说一下错误处理。
平时我们在使用这两个方法的时候可能没怎么注意错误处理,有时候如果传入的参数格式不正确就会导致报错了。下面是错误处理的方式:
json_last_error — 返回最后发生的错误,如果有,返回 JSON 编码解码时最后发生的错误。

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

<?php
// 一个有效的 json 字符串
$json[] = \'{\"Organization\": \"PHP Documentation Team\"}\';

// 一个无效的 json 字符串会导致一个语法错误,在这个例子里我们使用 \' 代替了 \" 作为引号
$json[] = \"{\'Organization\': \'PHP Documentation Team\'}\";

foreach ($json as $string) {
echo \'Decoding: \' . $string;
json_decode($string);

switch (json_last_error()) {
case JSON_ERROR_NONE:
echo \' - No errors\';
break;
case JSON_ERROR_DEPTH:
echo \' - Maximum stack depth exceeded\';
break;
case JSON_ERROR_STATE_MISMATCH:
echo \' - Underflow or the modes mismatch\';
break;
case JSON_ERROR_CTRL_CHAR:
echo \' - Unexpected control character found\';
break;
case JSON_ERROR_SYNTAX:
echo \' - Syntax error, malformed JSON\';
break;
case JSON_ERROR_UTF8:
echo \' - Malformed UTF-8 characters, possibly incorrectly encoded\';
break;
default:
echo \' - Unknown error\';
break;
}

echo PHP_EOL;
}

php官方参考文档:https://secure.php.net/manual/zh/function.json-last-error.php

:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可, 转载请附上原文出处链接。
1、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
2、本站提供的模板、软件工具等其他资源,均不包含技术服务,请大家谅解!
3、本站提供的资源仅供下载者参考学习,请勿用于任何商业用途,请24小时内删除!
4、如需商用,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
5、本站部分资源存放于百度网盘或其他网盘中,请提前注册好百度网盘账号,下载安装百度网盘客户端或其他网盘客户端进行下载;
6、本站部分资源文件是经压缩后的,请下载后安装解压软件,推荐使用WinRAR和7-Zip解压软件。
7、如果本站提供的资源侵犯到了您的权益,请邮件联系: 442469558@qq.com 进行处理!

猪小侠源码-最新源码下载平台 PHP教程 php中对内置函数json_encode和json_decode的异常处理 http://www.20zxx.cn/464185/xuexijiaocheng/qes.html

猪小侠源码,优质资源分享网

常见问题
  • 本站所有资源版权均属于原作者所有,均只能用于参考学习,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,建议提前注册好百度网盘账号,使用百度网盘客户端下载
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务