2013-05-20 73 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 
    ... 
}