Cru*_*her 0 javascript ajax jquery json mongodb
我有一个存储在mongoDB集合中的JSON对象.该对象表示5×图像,5y图像和tictactoe板图像的位置.
在一个间隔,我发送一个请求到一个响应该对象的php文件,然后我想解析该对象并相应地移动它们.
这是我的要求:
$.getJSON
(
"e4.php",
"",
function(data)
{
world = JSON.parse(data);
moveObjects(world);
}
);
Run Code Online (Sandbox Code Playgroud)
但我得到:JSON.parse:意外的角色
当我在console.log数据时,firebug给了我正确的对象,所以我知道它正在正常返回.
在e4.php中:
$criteria = array("name" => "world");
$doc = $collection->findOne($criteria);
$conn->close();
print $doc['world'];
Run Code Online (Sandbox Code Playgroud)
其中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;
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我很难过
提前致谢.
jQuery getJSON为你反序列化JSON,因此data将是一个对象图,而不是一个字符串.从文档:
的
success回调被传递返回的数据,其通常是JavaScript对象或阵列由JSON结构所定义和使用所解析的$.parseJSON()方法.
如此以来,data已经已经被反序列化,你不想要或需要调用JSON.parse它.这样做隐含的调用toString上data,这将返回[object Object]或[object Array],因此JSON.parse不喜欢它作为输入.:-) data直接使用:
$.getJSON
(
"e4.php",
"",
function(world) // <=== Changed name of argument
{
moveObjects(world); // <=== Used it directly
}
);
Run Code Online (Sandbox Code Playgroud)
另外:除非你宣布world某个你没有表现出来的地方,否则你的代码也会成为暗杀全球恐怖分子的牺牲品.你可能想要var在那里.但是通过上面的改变,你根本不需要变量,所以......
| 归档时间: |
|
| 查看次数: |
5512 次 |
| 最近记录: |