如何将 json 编码的 PHP 数组转换为 Javascript 中的数组? [复制]

2024-01-08

我正在使用 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 编码了这个数组但 AJAX 检索并输出在一个字符串中.

ABOVE ARRAY 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"}]

我正在寻找一种方法,可以在 Javascript 中使用我在 ajax 响应中收到的输出创建一个数组,这样我就可以得出一个格式数组:

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]
    ];

此问题有以下三种解决方案:

  • Call JSON.parse显式并将响应文本传递给它 https://stackoverflow.com/questions/4935632/how-to-parse-json-in-javascript。返回值将是 JavaScript 数据类型。

  • Set the dataType: 'json'选项在你的$.ajax http://api.jquery.com/jQuery.ajax/调用以便 jQuery 为您解析 JSON。

  • 设置右边JSON 的响应标头 https://stackoverflow.com/q/267546/218196在 PHP 中。 jQuery 将检测标头并自动解析 JSON。

如果你想修改客户端的结构,请看一下访问/处理(嵌套)对象、数组或 JSON https://stackoverflow.com/questions/11922383/access-process-nested-objects-arrays-or-json.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 json 编码的 PHP 数组转换为 Javascript 中的数组? [复制] 的相关文章