您好,欢迎访问一九零五行业门户网

json格式错误是什么意思

格式错误
由于json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。当中文使用gb2312编码,或者外文使用iso-8859-1编码的时候,这一点要特别注意。
$bad_json = { 'bar': 'baz' };$bad_json = '{ bar: baz }';$bad_json = '{ bar: baz, }';
对这三个字符串执行json_decode()都将返回null,并且报错。
第一个的错误是,json的分隔符(delimiter)只允许使用双引号,不能使用单引号。第二个的错误是,json名值对的名(冒号左边的部分),任何情况下都必须使用双引号。第三个的错误是,最后一个值之后不能添加逗号(trailing comma)。
另外,json只能用来表示对象(object)和数组(array),如果对一个字符串或数值使用json_decode(),将会返回null。
格式正确,但却报错
第一种类型,字符编码问题
由于json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。当中文使用gb2312编码,或者外文使用iso-8859-1编码的时候,这一点要特别注意。
第二种类型bom问题
 bom报头又叫utf-8签名,其实utf-8  的bom对uft-8没有作用,是为了支援utf-16,utf-32才加上的bom,bom签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器 识别,但是bom虽然在编辑器中不显示,但是会产生输出,就像多了一个空行,一般的php代码如果用记事本等软件编辑保存过之后,在保存一个以utf-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xef 0xbb  0xbf,即bom)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以utf-8编码。(还不清楚为什么会在返回数据时候也自动加上了bom报头)。
/** * 去除bom报头 */public static string formatstring(string s) {if (s != null) {  s = s.replaceall(\ufeff, );} return s;}
以上就是json格式错误是什么意思的详细内容。
其它类似信息

推荐信息