我已经在这里看到很多主题;但他们并不是非常接近我的情况。
所以我无法用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()
;这个想法有所帮助,不知道为什么会有效。
答案 0 :(得分:0)
尝试下面你需要的stripslashes()
$str = '<JSON STRING>';
$str = stripslashes($str);
$data = json_decode($str,true);
var_dump($data);
答案 1 :(得分:0)
json_encode
和json_decode
要求字符串为UTF8编码
看起来你在json中使用俄语字母,它可以通过json_encode转换为\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430
之类的字符序列,也可以手动完成。
由于斜杠,json_decode
不会接受JSON字符串,您可以像其他人建议的那样删除斜杠,但这会弄乱转换后的俄语字符。
如果你逃避俄语字符串上的斜杠,那么你将得到\u0414
而不是\\u0414
,而json字符串将被接受。这将在将对象转换为带有json_encode
的json字符串之前完成。
这应该让你在字符串上使用json_decode并在结果数组中获得正确的值,俄语字符序列仍然“完整”。