2013-05-20 38 views
2

我在PHP中接收JSON代码,但如果我尝试解码它没有任何反应。PHP接收JSON,但无法解码它

CODE:

$json = stripslashes($_POST['json']); 
$output = json_decode($json); 

当我登录$json$output到控制台:

$json值:

{"post":"{'newfavorite':'<div id="1" class="favorite"><sub class="minID">Id 1</sub><a href="http://www.youtube.com/watch?v=1PXQpWm_kq0">http://www.youtu</a><span onclick="movefavorite(1)"><img class="move" title="Move" src="icon/move.png"></span><span onclick="removefavorite(1)"><img class="delete" title="Delete" src="icon/del.png"></span></div>','username':'ifch0o'}"}

$输出值是:空字符串或空或未定义。我不知道。

控制台说:output is :

+0

的JSON是无效的;你有不正确的嵌套报价 –

+2

json输入无效。 PHP不能验证它,也不能使用任何其他语言的其他JSON解码器。将你的代码粘贴到验证器中,例如[this one](http://jsonlint.com/)以供证明。 – Spudley

+0

你不应该打电话反弹......这会破坏json的逃跑。 – Orangepill

回答

3

您的JSON使用"表示字符串但是你的内容包含"例如

<div id="1" class="favorite">

因为你已经删除了字符使用stripslashes()串被提前结束,这是创造无效的JSON逃脱。

只需删除stripslashes()以防止这些字符转义。

$json = $_POST['json']; 
$output = json_decode($json); 

这是PHP如何看待您的JSON:

{ 
    "post": "{'newfavorite':'<div id=", 
    1 // Error here - unexpected 1 
    " class=" // unexpected string 
    ... 
}