https://www.googleapis.com/freebase/v1/search?query=madonna#
JSON结果打破了PHP的json_decode。确切地说,以下字符串正在打破解码:“Sticky \ x26amp; Sweet Tour”。
然而,浏览器似乎能够理解它:http://jsfiddle.net/nggX2/& http://jsfiddle.net/QUVFt/http://jsonlint.com/声称它是无效的JSON。
在PHP方面,我尝试过:http://codepad.viper-7.com/suUbQD和http://codepad.viper-7.com/QjqCH7
有关正在发生的事情的任何想法?
答案 0 :(得分:7)
发生的事情是这是无效的JSON。该url的响应不正确 - JSON不允许\xXX
两位十六进制二进制转义序列,只允许\uXXXX
unicode代码点转义序列。这里它应该只是&
- 不需要转义序列。
不知道为什么google / freebase会输出无效的JSON。
答案 1 :(得分:1)
您的JSON应如下所示:
"Sticky \\x26amp; SweetTour"
需要转义斜杠,因为它是转义字符。