2

我在 PHP 中收到 JSON 代码,但如果我尝试对其进行解码,则没有任何反应。

代码:

$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 值为:空字符串或 null 或未定义。我不知道。

控制台说:output is :

4

1 回答 1

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
   ...
}
于 2013-05-21T12:34:43.677 回答