将AJAX HTML响应读入JavaScript数组

时间:2012-03-06 03:09:32

标签: php javascript ajax json jquery

好的,所以我有一个AJAX函数从远程PHP文件中获取JSON编码的字符串,响应看起来就是这样..

{"zone_id":"1","zone_name":"Test Zone 1","zone_tilemap":"0,0,0,0*0,0,0,0*0,0,0,0*0,0,0,0","zone_objectmap":"0,0,0,0*0,0,0,0*0,0,0,0*0,0,0,0"}

我不会太深入了解这段代码的内容,但我现在需要的部分是tilemap,我需要以某种方式将这些数字读入多维JavaScript数组,所以它看起来像......

var someArray = new Array([0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]);

我知道在PHP中有一个爆炸函数,它可以通过星号分隔字符串,然后用逗号分隔字符串并将结果放入数组中,但我不擅长JavaScript并且不知道如何完成这个,有什么想法吗?

到目前为止我的AJAX功能......

function getLocalZoneInformation(){
    $.ajax({
        type: 'POST',
        url: "./inc/backend/game.functions.php?getLocalZoneInformation=" + localCharacterZoneID,
        success: function(response){
            var localZoneInformation = jQuery.parseJSON(response);

            localZoneID = localZoneInformation.zone_id;
            localZoneName = localZoneInformation.zone_name;
            localZoneTileMap = localZoneInformation.zone_tilemap;
            localZoneObjectMap = localZoneInformation.zone_objectmap;
        }
    });
}

3 个答案:

答案 0 :(得分:3)

var tmp = localZoneTileMap.split("*");

var someArray = [];
for (i = 0; i < tmp.length; i++) {
    someArray.push(tmp[i].split(","));
}

如果使用的是JavaScript 1.6或更高版本,则可以使用map()方法

var someArray = localZoneTileMap.split("*").map(function(tileMap) {
    return tileMap.split(",");
});

答案 1 :(得分:1)

试试这个:

zones = localZoneName.zone_tilemap.split("*")
out_array = []
for (i in zones) {
    out_array.push(zones[i].split(","))
}

结果将保存在out_array var。

答案 2 :(得分:0)

  • 创建一个类型转换(数组)
  • 循环你的对象
  • 将每个元素推送到数组