一样平常情形下,你可能没有什么创造这两个函数有什么问题。但是有时你有可能在利用json_encode函数或者json_decode函数时,会无奈的创造结果变成null了。这是什么缘故原由呢?
json_encode结果为null
Json只支持转义UTF-8编码格式的中文,如果被编码的中文不是UTF-8格式,而是GBK或者GB2312格式,json_encode函数在进行编码时,结果就会变成null。这个情形一样平常涌如今文档编码或者输出的内容编码是非UTF-8时。

以是如果你的程序是采取utf-8编码,请确保文件保存时是利用为utf-8 无bom格式,如果你的程序是gbk格式的,可以先将其转成utf-8格式,然后再利用json_encode函数。
json_decode结果为null
json_decode函数对json字符串的格式哀求非常严格,对付不符合格式的json字符串,利用此函数解析,结果会返回null。在结果返回null时,我们可以利用json_last_error()函数获取返回值来判断出问题的缘故原由。
1、编码格式问题
json字符串的编码格式必须是utf-8格式的。 这里有两种查看字符串编码格式的方法:
①:在浏览器中按F12,找到meta标签,charset后面便是编码格式。
②:利用mb_detect_encoding函数,返回值便是字符串的编码格式。
如果确定是编码格式问题的话,就用iconv()函数来转码。
2:json语法缺点
如果觉得是语法缺点的话最好百度一个工具来测试一下到底是哪里的语法缺点。 用法很大略,把json字符串复制进去之后按“校验”按钮即可。
①:json字符串两遍必须以双引号来包含。
②:json工具中末了一个元素后面不能有逗号。
③:json字符串不能含有bom头。去掉bom头可以利用如下办法: