javascript - 使用 Javascript/jQuery 读取 JSON

标签 javascript jquery json

我正在用 javascript/html5 构建一个游戏,我正在尝试构建一个迷宫中锁着的门的数据库,该数据库可以在整个游戏过程中加载和覆盖。我在网上找了很多教程,但没有任何效果。我想知道是否有人可以看看我正在尝试的内容并让我知道我做错了什么。

我的 JSON 文件如下所示:

{
"doors": [
    {"left":true, "right":false, "bottom":false}, 
    {"left":false, "right":false, "bottom":false},
    {"right":false, "bottom":false, "top":false},
    {"left":false, "right":false, "top":false}
    ]
}

我想构建 HTML 页面,以便当玩家与门碰撞时,它会检查门是否锁定,如下所示:

if (player.x < leftDoor.x + leftDoor.width  && 
player.x + player.width  > leftDoor.x &&
player.y < leftDoor.y + leftDoor.height && 
player.y + player.height > leftDoor.y) 
{
     if(doors[0].left == true)
         alert("door is locked");
     else
         window.location = ( "2.html?p1=");
} 

但是我在读取 JSON 文件本身时遇到问题。我尝试过这样的事情:

function loadJson() {
    $(document).ready(function()
    {
        $.getJSON('info.json', function(doors) {
        alert(doors[0].left);
        });
    });
}

但是没有任何反应,我还需要能够访问 HTML 中的信息。我宁愿使用 jQuery,但如果它有效的话我并不反对直接使用 JS。多年来我一直在尝试这样做,但毫无进展。如果有人能提供帮助那就太好了。谢谢!

最佳答案

也许您应该使用传统函数 jQuery.ajax 并将响应解析为 json。我总是发现它更容易调试。

jQuery.ajax({
    url:'info.json',
    dataType:'json'
}).done(function(response) {
   console.log(response.doors);
});

请注意,响应的第一个元素不是response[0],而是response.doors。

此外...我不明白数据结构。为什么你的几个位置都有“左”键?

关于javascript - 使用 Javascript/jQuery 读取 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19758130/

相关文章:

javascript - 从浏览器打印图像文件

javascript - 将 "Linked function"更改为 "bind"或 "on"

javascript - 当 console.assert 失败时进入 chrome 调试器

javascript - 未定义索引 : Error in ajax POST and/or php script?

javascript - 删除用于打印的 JavaScript CSS 覆盖

java - 如何处理所有资源的无法识别的属性异常

javascript - 登录网站后如何获取当前位置?

javascript - jQuery:如何将请求的 2 个结果加入到 json 服务器?

javascript - 带有断线的 JSON 到 HTML, Angular 转换

jQuery 自动完成与 JSON