Php 将多维JSON数组传递给jQuery函数

Php 将多维JSON数组传递给jQuery函数,php,javascript,jquery,ajax,json,Php,Javascript,Jquery,Ajax,Json,我有一个PHP数组,我想传递给调用它的jQuery函数。然而,当我试图用下面的方法检索'lat'的值时,我得到了一个错误,无法读取null的属性'lat',这显然是因为我不知道如何访问多维JSON数组。有人能告诉我怎么做吗 PHP数组 Array ( [0] => Array ( [price] => 1600 [bedroom] => 1 [lat] => -71.119385 [lng] =>

我有一个PHP数组,我想传递给调用它的jQuery函数。然而,当我试图用下面的方法检索'lat'的值时,我得到了一个错误,
无法读取null的属性'lat',这显然是因为我不知道如何访问多维JSON数组。有人能告诉我怎么做吗

PHP数组

Array
(
[0] => Array
    (
        [price] => 1600
        [bedroom] => 1
        [lat] => -71.119385
        [lng] => 42.373917
        [distance] => 6.65195429565453
    )

[1] => Array
    (
        [price] => 1800
        [bedroom] => 1
        [lat] => -71.104248
        [lng] => 42.368172
        [distance] => 4.957829810472103
    )
}
$(function() {
    $("#search_button").click(function(e){
        e.preventDefault();
        var search_location = $("#search_location").val();
        $.getJSON('index.php/main/get_places', {search_location: search_location}, function(json){
            $("#result").html(json.lat);
            console.log(json.lat);
        });
    });
});
这会被编码到

JSON

[{"price":"1600","bedroom":"1","lat":"-71.119385","lng":"42.373917","distance":"6.65195429565453"},{"price":"1800","bedroom":"1","lat":"-71.104248","lng":"42.368172","distance":"4.957829810472103"}]
jQuery

Array
(
[0] => Array
    (
        [price] => 1600
        [bedroom] => 1
        [lat] => -71.119385
        [lng] => 42.373917
        [distance] => 6.65195429565453
    )

[1] => Array
    (
        [price] => 1800
        [bedroom] => 1
        [lat] => -71.104248
        [lng] => 42.368172
        [distance] => 4.957829810472103
    )
}
$(function() {
    $("#search_button").click(function(e){
        e.preventDefault();
        var search_location = $("#search_location").val();
        $.getJSON('index.php/main/get_places', {search_location: search_location}, function(json){
            $("#result").html(json.lat);
            console.log(json.lat);
        });
    });
});

json以对象数组的形式返回,因此需要首先引用标量。将对json.lat的引用更改为json[0].lat


然后,如果需要,您可以编写一个for循环并将其引用为json[i].lat,假设i是您的迭代器变量。

json
是一个数组,因此它没有属性
lat

尝试:


例如,获取第一个对象的lat属性。

json是一个对象数组,就像在php代码中一样

因此有两个lat值:

json[0].lat  // and
json[1].lat

如错误消息所述,
json
变量本身为空。因此,关于访问
json
的子索引或像数组一样对其进行迭代的所有答案都将失败

查看jQuery的
getJSON
parseJSON
文档
getJSON
通过
parseJSON
传递服务器的响应,将其转换为Javascript对象
parseJSON
返回null“如果不传入任何内容、空字符串、null或未定义。”

我将使用浏览器的调试器查看来自服务器的原始http响应,因为这很可能是罪魁祸首


console.log(json[0].lat)
没有导致javascript控制台中记录任何内容……那么
JSON
就不是您所说的:)我检查了返回的JSON字符串,没有使用AJAX。这才是真正的JSON lol。。。这是否与
JSON
字符串没有任何索引号有关,如
1:,2:
oh no。。当使用json[0].lat时,我遇到错误
无法读取null的属性“0”。有没有办法检查jquery函数接收到的json字符串是什么?啊,好的,那么响应可能不是您所期望的。有一些工具可以查看正在发生的事情,但我更喜欢使用Chrome中的开发者工具(按ctl-shift-J打开-查看网络选项卡)。