[英]JSON.parse Unexpected character
我在mongoDB集合中存儲了一個JSON對象。 該對象表示5 x圖像,5 y圖像和針孔板圖像的位置。
每隔一段時間,我向該對象響應的php文件發送一個請求,然后我想解析該對象並相應地移動各個部分。
這是我的要求:
$.getJSON
(
"e4.php",
"",
function(data)
{
world = JSON.parse(data);
moveObjects(world);
}
);
但我得到:JSON.parse:意外字符
當我console.log數據firebug給我正確的對象,所以我知道它正在正確返回。
在e4.php中:
$criteria = array("name" => "world");
$doc = $collection->findOne($criteria);
$conn->close();
print $doc['world'];
其中conn是連接,而collection是我正在使用的集合。
數據庫在e3.php中更新:
$encodedworld = $_REQUEST['data'];
$criteria = array("name" => "world");
$doc = $collection->findOne($criteria);
$doc['world'] = $encodedworld;
$collection->save($doc);
$conn->close();
print $encodedworld;
有任何想法嗎? 我很困惑
提前致謝。
jQuery的getJSON
為您反序列化JSON,因此data
將是對象圖,而不是字符串。 從文檔中:
success
回調將傳遞返回的數據,該數據通常是由JSON結構定義並使用$.parseJSON()
方法進行解析的JavaScript對象或數組。
因此,由於data
已經反序列化,因此您不需要或不需要對其調用JSON.parse
。 這樣做將隱式調用data
toString
,這將返回[object Object]
或[object Array]
,因此JSON.parse
不喜歡將其作為輸入。 :-)只需直接使用data
:
$.getJSON
(
"e4.php",
"",
function(world) // <=== Changed name of argument
{
moveObjects(world); // <=== Used it directly
}
);
另外:除非您聲明未顯示的world
否則您的代碼也將成為“隱式全球恐怖”的獵物。 您可能想在那里var
。 但是有了上面的更改,您根本不需要該變量,所以...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.