前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP json_decode 需要注意的几点.

PHP json_decode 需要注意的几点.

原创
作者头像
Tuesday
修改2019-05-28 18:09:15
9760
修改2019-05-28 18:09:15
举报
文章被收录于专栏:Qampp知识库.

JSON在php中使用上非常方便, 但一些细节需要特别注意. 返回值并不能决定解析成功. 具体可以看一下示例, 分别对各种情况进行了测试.

基本上测试结果如下: 1: 布尔值, 数字作为参数时, 将永远解析成功 ( ?是否合适 ) 2: 解析失败的情况下json_last_error() 返回非0 3: json_last_error_msg() 任何情况下都不会返回空.

那这时需要怎么来判断解析成功呢? 我的建议如下. 1: 判断 json_decode 返回值为数组类型, 即使是空数组, 2: 判断 json_last_error 等于 JSON_ERROR_NONE 也就是0

代码如下:

代码语言:javascript
复制
<?php
$ret = json_decode('11abc', true);
if(is_array($ret) && json_last_error() === JSON_ERROR_NONE){
   // this ok 
}

一些示例如下:

代码语言:javascript
复制
<?php
var_dump(json_decode('0', true));
var_dump(json_last_error(), json_last_error_msg());

返回值如下:

成功的解析?
成功的解析?
代码语言:javascript
复制
<?php
var_dump(json_decode('', true));
var_dump(json_last_error(), json_last_error_msg());

返回值如下图

失败的解析
失败的解析
代码语言:javascript
复制
<?php
var_dump(json_decode(true, true));
var_dump(json_last_error(), json_last_error_msg());

返回值如下图

成功的解析
成功的解析
代码语言:javascript
复制
<?php
var_dump(json_decode(1, true));
var_dump(json_last_error(), json_last_error_msg());

返回值如下图

成功的解析
成功的解析

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档