快捷搜索:  汽车  科技

php怎么解析json数据(你真的了解PHP中的json)

php怎么解析json数据(你真的了解PHP中的json)②:使用mb_detect_encoding函数,返回值就是字符串的编码格式。1、编码格式问题所以如果你的程序是采用utf-8编码,请确保文件保存时是使用为utf-8 无bom格式,如果你的程序是gbk格式的,可以先将其转成utf-8格式,然后再使用json_encode函数。json_decode结果为nulljson_decode函数对json字符串的格式要求非常严格,对于不符合格式的json字符串,使用此函数解析,结果会返回null。在结果返回null时,我们可以使用json_last_error()函数获取返回值来判断出问题的原因。

Json格式在现在的开发中应用十分广泛,作为数据传输格式,其有着特别的优势。在PHP中json_encode和json_decode可以进行Json格式数据的转化,json_encode函数可以直接将数组转成 Json格式,而json_decode函数可以直接将Json格式数据转化为数组或者对象。

一般情况下,你可能没有什么发现这两个函数有什么问题。但是有时你有可能在使用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、编码格式问题

②:使用mb_detect_encoding函数,返回值就是字符串的编码格式。

php怎么解析json数据(你真的了解PHP中的json)(1)

如果确定是编码格式问题的话,就用iconv()函数来转码。

php怎么解析json数据(你真的了解PHP中的json)(2)

2:json语法错误

如果感觉是语法错误的话最好百度一个工具来测试一下到底是哪里的语法错误。 用法很简单,把json字符串复制进去之后按“校验”按钮即可。

①:json字符串两遍必须以双引号来包含。

php怎么解析json数据(你真的了解PHP中的json)(3)

②:json对象中最后一个元素后面不能有逗号。

php怎么解析json数据(你真的了解PHP中的json)(4)

③:json字符串不能含有bom头。去掉bom头可以使用如下方式:

php怎么解析json数据(你真的了解PHP中的json)(5)

猜您喜欢: