Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php json_解码返回空值,具有不同的qoute_Php_Json - Fatal编程技术网

Php json_解码返回空值,具有不同的qoute

Php json_解码返回空值,具有不同的qoute,php,json,Php,Json,json_decode('[“foo”,“bar”]',true),这是可行的,但是这个返回NULL,json_decode(“['foo','bar']”,true)。json\u last\u error()输出4,json\u error\u语法 我检查了以下问题的一些答案 并尝试了以下解决方案,但没有成功 json_解码(str_替换(“,“,”,“['foo','bar']),true) json\u解码(stripslashes(str\u替换(“\”、“”、“['foo'、'

json_decode('[“foo”,“bar”]',true)
,这是可行的,但是这个返回
NULL
json_decode(“['foo','bar']”,true)
json\u last\u error()
输出
4
json\u error\u语法

我检查了以下问题的一些答案

并尝试了以下解决方案,但没有成功

json_解码(str_替换(“,“,”,“['foo','bar']),true)

json\u解码(stripslashes(str\u替换(“\”、“”、“['foo'、'bar'])),true)

json_解码(带斜杠(['foo','bar']),true)

json_解码(utf8_编码(“['foo','bar']),true)


我认为这与UTF-8 bom无关。这是一个PHP错误吗?或者如何将
“['foo','bar']”
转换为
“['foo','bar']”
作为解决方法?

您没有向函数提供有效的json。如果你使用javascript数组[“foo”,“bar”],你应该使用JSON.stringify使JSON实际位于js端。

JSON字符串用双引号引到
。单引号
(在PHP中很常见)不是有效的JSON。无需讨论。因此,输入
['foo','bar']
不是有效的json,并且
json\u decode
正确地拒绝解析它

["foo","bar"] 另请参见,其中定义了JSON格式:

字符串是用引号(U+0022)包装的Unicode代码点序列。1

如果您正在寻找将JSON ish字符串(它来自何处?最好修复无效JSON的源代码)转换为有效JSON的方法;
str\u replace(“\”,$jsonInput)
应该可以在简单的情况下工作



1(
U+0022
是双引号

函数
json\U decode
作为参数的字符串需要是有效的json。
{“a”:1,“b”:2,“c”:3,“d”:4,“e”:5}
这是有效的json。您只需传入一个用引号括起来的数组。