2012-03-06 21 views
2

好了,所以我有一個AJAX功能從遠程PHP文件獲取一個JSON編碼字符串,響應看起來像這樣..讀取一個AJAX HTML響應轉換成JavaScript數組

{"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的,我需要以某種方式閱讀這些數字爲mutlidimensional JavaScript數組,所以它看起來是這樣的...

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

我知道在PHP中有一個爆炸函數,可以將字符串由asterix分開,然後用逗號分隔結果放到一個數組中,但我對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; 
     } 
    }); 
} 
+0

爲什麼不加'數據類型:json'並jQuery將自動解析響應? – Phil 2012-03-06 03:13:35

+0

我一開始就嘗試過,但正如我所說,我是一名初學者,看起來很複雜,因爲我的心態!如果你能指點我一個教程,我會非常感激。 – 2012-03-06 13:00:54

回答

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

試試這個:

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

結果將保存在ou t_array var。

0
  • 創建一個類型轉換(陣列)
  • 循環的對象
  • 推進各項ELEM到陣列