从PHP读取json响应并推入javascript多维数组

时间:2015-01-22 11:33:18

标签: javascript jquery json

[
  {"type":"1","text":"success"},
  {"yid":"167","uid":"15","lat":"13.0501383","lng":"77.597593","time":"2014-10-20 20:25:27","dist":1.95},
  {"yid":"204","uid":"32","lat":"13.0412773","lng":"77.6133699","time":"2014-11-17 03:15:24","dist":0.06}
]

这是我在php脚本中的json响应。我需要在javascript中以多维数组存储或推送它。我能够使用以下代码成功解码json响应。

var myLatLng = [];
var myYid = [];

post_data = {'userLat':position.coords.latitude, 'userLng':position.coords.longitude};

$.post('leo.php', post_data, function(response){
  $.each(response, function(index, element) {
    if(element.lat!=undefined || element.lng!=undefined)
    {
      myLatLng.push(element.lat+', '+element.lng);
      myYid.push(element.yid);
    }       
  });
});

我还需要在不同的函数中全局使用这些值。

1 个答案:

答案 0 :(得分:0)

首先,您需要检查undefined是否为“AND”条件,因为两者都必须定义,因为您正在访问它们并将它们分配给“then”中的变量“条款。

当你说“多维数组”时,如果它只有数字索引,你可以在javascript中有一个多维数组。如果你想拥有键值对,它将是一个对象而不是一个数组。 如果这对你来说足够好,那么每次只需推送一个数组,而不是将单个值推送到两个独立的数组:

var multiDimArray = [];

post_data = {'userLat':position.coords.latitude, 'userLng':position.coords.longitude};

$.post('leo.php', post_data, function(response){
  $.each(response, function(index, element) {
    if(element.lat!==undefined && element.lng!==undefined)
    {
      multiDimArray.push(new Array(element.lat+', '+element.lng,element.yid));
    }       
  });
});