php使用json_decode返回NULL

php5.2以后自带json_decode函数,但是对json文本串的格式要求非常严格。

很可能使用该函数得到的返回值是NULL

可以使用使用json_last_error()函数获取到的返回值来帮助我们判断出问题的原因。

其中如果提示错误JSON_ERROR_SYNTAX(Syntax error),表示json串格式错误。

可以通过以下几个方式排错:

1. json字符串必须以双引号包含

$output = str_replace("‘", ‘"‘, $output);

2. json字符串必须是utf8编码
$output = iconv(‘gbk‘, ‘utf8‘, $output);

3.不能有多余的逗号 如:[1,2,]
用正则替换掉,preg_replace(‘/,\s*([\]}])/m‘, ‘$1‘, $output)

时间: 2024-10-18 08:38:14

php使用json_decode返回NULL的相关文章

PHP json_decode返回null解析失败原因

在PHP5.4之前 json_decode函数有两个参数json_decode有两个参数,第一个是待解析的字符串,第二个是是否解析为Arrayjson_decode要求的字符串比较严格:(1)使用UTF-8编码(2)不能在最后元素有逗号(3)不能使用单引号(4)不能有r,t,如果有请替换所以问题来了,不小心在返回的json字符串中返回了BOM头的不可见字符,某些编辑器默认会加上BOM头,如下处理才能正确解析json数据: $result = json_decode(trim($contents,

PHP 获取JSON json_decode返回NULL解决办法

在用json_decode对JSON格式的字符串进行解码时竟然为空,页面空白啊,整半天检查这里检查那里,问同事都没用. 今天必应搜索了下,问题解决了,原来是有BOM头输出,大虾的解决办法如下: 1).json_decode($json,boolean):$json为json格式的字符,第二个参数为TRUE时表示转换为数组,默认的FALSE表示 转换为对象. 2).json_decode要求的字符串比较严格: (1)使用UTF-8编码 (2)不能在最后元素有逗号 (3)不能使用单引号 (4)不能有

tp中对json_decode返回null的解决办法

json_decode要求的字符串比较严格:(1)使用UTF-8编码(2)不能在最后元素有逗号(3)不能使用单引号(4)不能有\r,\t,如果有请替换 tp框架中的I函数默认对post的参数进行了htmlspecialchars过滤 'DEFAULT_FILTER' => 'htmlspecialchars', // 默认参数过滤方法 用于I函数... string(23) "{"test":"url",'attr':1}" string(

json_decode返回null 和synax error原因及处理

$checkLogin ='[{"gdsincode":"1103293","gdsname":"鲜美来带鱼段800g","nowamount":0.000,"shopprice":18.00,"stockinstd":1.00,"baseunit":"袋","brandcode":"00"

json_decode 返回null 问题

当查询了各种方法,并且尝试了各种方法, 1. json字符串必须以双引号包含 $output = str_replace("'", '"', $output); 2. json字符串必须是utf8编码 $output = iconv('gbk', 'utf8', $output); 3.不能有多余的逗号 如:[1,2,] 用正则替换掉,preg_replace('/,\s*([\]}])/m', '$1', $output) 等等, 请不要放弃治疗,再尝试一个办法 $arr

PHP解码Json(json_decode)字符串返回NULL的原因及解决方法(转载)

本文主要为大家讲解了php在使用json_decode函数解码json字符串时,解码不成功返回NULL的问题原因分析和解决方法,感兴趣的同学参考下. 一般来说,php对json字符串解码使用json_decode()函数,第一个参数传字符串,第二个参数若为true,返回array:若为false,返回object.如果返回NULL,说明报错,输出json_last_error(),得到的整数值对应错误提示.如下图所示: json_last_error()比较常见的是整数4, 是json字符串在j

[PHP]对Json字符串解码返回NULL的一般解决方案

/*-------------------------------------------------------------------------------------------------------- @黑眼诗人 <www.chenwei.ws> --------------------------------------------------------------------------------------------------------*/ php对json字符串解

关于GestureDetector的onFling方法e1返回null问题

解决办法: 定义一个MotionEvent对象,在ondown里面赋值  private MotionEvent mLastOnDownEvent = null; @Override         public boolean onDown(MotionEvent arg0) {          mLastOnDownEvent=arg0;         return false;       } @Override     public boolean onFling(MotionEve

Java Socket编程readLine返回null,read返回-1的条件

客户端正常关闭socket的时候,服务器端的readLine()方法会返回null,或者read()方法会返回-1 Java Socket编程readLine返回null,read返回-1的条件,布布扣,bubuko.com