JSON解码麻烦,PHP

时间:2013-12-31 11:29:20

标签: php json decode

我已经在这里看到很多主题;但他们并不是非常接近我的情况。 所以我无法用php解码json(结果是NULL而错误是JSON_ERROR_SYNTAX),这是json:http://pastebin.com/7XUZB0Px

Json似乎有效: 我尝试使用http://json.parser.online.fr/http://jsonlint.com/对其进行验证,一切正常;但是json_decode()不起作用。

所以我的php尝试:http://codepad.org/DBxjihgE

非常感谢你的帮助!

P.S。 sry有很多链接 - json相当大,也是例子。

EDITED

有评论(现在删除)添加stripslashes();这个想法有所帮助,不知道为什么会有效。

2 个答案:

答案 0 :(得分:0)

尝试下面你需要的stripslashes()

$str = '<JSON STRING>';
$str = stripslashes($str);
$data = json_decode($str,true);

var_dump($data);

答案 1 :(得分:0)

json_encodejson_decode要求字符串为UTF8编码 看起来你在json中使用俄语字母,它可以通过json_encode转换为\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430之类的字符序列,也可以手动完成。
由于斜杠,json_decode不会接受JSON字符串,您可以像其他人建议的那样删除斜杠,但这会弄乱转换后的俄语字符。

如果你逃避俄语字符串上的斜杠,那么你将得到\u0414而不是\\u0414,而json字符串将被接受。这将在将对象转换为带有json_encode的json字符串之前完成。

这应该让你在字符串上使用json_decode并在结果数组中获得正确的值,俄语字符序列仍然“完整”。