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。您只需传入一个用引号括起来的数组。