如何将json编码的PHP数组转换为Javascript数组?

17 浏览
0 Comments

如何将json编码的PHP数组转换为Javascript数组?

这个问题已经在其他地方有了答案

在JavaScript中解析JSON?[重复]

我正在使用AJAX从PHP文件获取一个JSON编码数组,但在JavaScript中我需要将它用作数组,我该如何在JavaScript中创建一个数组?

我对PHP文件的AJAX调用:

  $.ajax({
    type:"POST",
    url:"ajaxfetch.php",
    success:function(result){
            alert(result);
             }
    });

在PHP文件中创建的数组:

Array
(
    [0] => Array
        (
            [id] => 4
            [deviceID] => xyz123
            [latitude] =>  -33.80010128657071
            [longitude] => 151.28747820854187
            [altitude] => 34.78788787
            [createdDate] => 2013-08-15 23:00:00
            [delete] => 0
        )
    [1] => Array
        (
            [id] => 5
            [deviceID] => jdkfhjskh344
            [latitude] => -33.950198
            [longitude] => 151.259302
            [altitude] => 76.44455
            [createdDate] => 2013-08-15 21:50:42
            [delete] => 0
        )
    [2] => Array
        (
            [id] => 1
            [deviceID] => abc223
            [latitude] => -33.890542
            [longitude] => 151.274856
            [altitude] => 21.4454455
            [createdDate] => 2013-08-15 20:00:00
            [delete] => 0
        )
)

我在PHP中使用json_encode对此数组进行了编码,但AJAX检索并输出为字符串。

上述数组已经如下json编码:

$data = array();
$data = $locate_obj->getAllDeviceLocation();
echo json_encode($data);

json_encode的输出

[{"id":"4","deviceID":"xyz123","latitude":" -33.80010128657071","longitude":"151.28747820854187","altitude":"34.78788787","createdDate":"2013-08-15 23:00:00","delete":"0"},{"id":"5","deviceID":"jdkfhjskh344","latitude":"-33.950198","longitude":"151.259302","altitude":"76.44455","createdDate":"2013-08-15 21:50:42","delete":"0"},{"id":"1","deviceID":"abc223","latitude":"-33.890542","longitude":"151.274856","altitude":"21.4454455","createdDate":"2013-08-15 20:00:00","delete":"0"}]

我正在寻找的方法是,如何通过ajax响应中接收到的输出,在JavaScript中创建一个数组,以便我可以得到一个如下格式的数组:

var locations = [
      ['Bondi Beach', -33.890542, 151.274856, 4],
      ['Coogee Beach', -33.923036, 151.259052, 5],
      ['Cronulla Beach', -34.028249, 151.157507, 3],
      ['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
      ['Maroubra Beach', -33.950198, 151.259302, 1]
    ];

admin 更改状态以发布 2023年5月20日
0
0 Comments

http://api.jquery.com/jQuery.getJSON/
$.getJSON('ajaxfetch.php', function(data) {
  var locations = []; 
  $.each(data, function(key, val) {
    locations[val.deviceID] = [];
    locations[val.deviceID].push(val.id);
    locations[val.deviceID].push(val.latitude);
    locations[val.deviceID].push(val.longitude);
  });
});

没有完全测试,但是它基本正确。不确定您从哪里获取位置名称,因为它不在数组中,所以我使用了deviceID。使用getJSON应该可以让您的生活更轻松。

0
0 Comments

这个问题有三种解决方法:

如果您想在客户端修改结构,请查看访问/处理(嵌套)对象、数组或JSON

0