使用Javascript / jQuery读取JSON

时间:2013-11-03 21:05:38

标签: 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。我一直试图这样做多年,我绝对没有。如果有人可以帮助那将是惊人的。谢谢!

2 个答案:

答案 0 :(得分:1)

也许你应该使用传统的函数jQuery.ajax并将响应解析为json。我总觉得它更容易调试。

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

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

此外......我没有得到数据结构。你怎么在几个位置都有一个“左”键?

答案 1 :(得分:1)

$.get('info.json',{},function(data){

    console.log(data.doors);
});

就是这样。