在javascript中解析json数组时检查返回值

在javascript中解析json数组时检查返回值,javascript,json,return-value,Javascript,Json,Return Value,我是ajax和json的初学者,如果这个问题有点愚蠢,我很抱歉。我正在检索数据(城市id和名称)并将它们放入一个数组中,然后使用json_编码。然后调用getCities函数,但我不确定是否得到了正确的城市。我尝试使用document.write,但没有输出。我怎么知道我得到的是不是正确的?谢谢你的帮助 下面是getCities.php: $json = array(); $query = "SELECT cityID, cityName FROM city"; $result = mysql_

我是ajax和json的初学者,如果这个问题有点愚蠢,我很抱歉。我正在检索数据(城市id和名称)并将它们放入一个数组中,然后使用json_编码。然后调用getCities函数,但我不确定是否得到了正确的城市。我尝试使用document.write,但没有输出。我怎么知道我得到的是不是正确的?谢谢你的帮助

下面是getCities.php:

$json = array();
$query = "SELECT cityID, cityName FROM city";
$result = mysql_query($query);

while($row = mysql_fetch_array($result)){
    $coord = array('id' => $row['cityID'],'city' => $row['cityName']);
    array_push($json, $coord);
}

$jsonstring = json_encode($json); 
下面是javascript部分:

function getCities(){
        var string = $.ajax ({
                        url: "getCities.php",
                        dataType: 'json'
                    }).responseText;
        return JSON.parse(string);          
    }

    $(document).ready(function (){ 
        var city = getCities();
        while (city.length > 0) {
            document.write(city.pop + "<br/>");
        }
    });
函数getCities(){ var字符串=$.ajax({ url:“getCities.php”, 数据类型:“json” }).responseText; 返回JSON.parse(字符串); } $(文档).ready(函数(){ var city=getCities(); 而(城市长度>0){ document.write(city.pop+“
”); } });
有两种简单的方法可以做到这一点。首先,我使用Google Chrome(或Firefox)来方便测试。查看文档,您将看到,$.ajax调用也将接受一个success函数。您可以将其放在数据类型下的ajax调用中,如下所示:

  var string = $.ajax ({
                        url: "getCities.php",
                        dataType: 'json',
                        success: function(data) {
                          console.log(data);
                        }
                    });
      string.done();
注意我是如何更改ajax调用的结尾的。现在的意思是,当这个调用完成时,调用success函数。如果您希望在出现错误时打印出一些内容,还可以在ajax调用中添加一个error函数。当数据返回时,将调用success函数。它将在Chrome调试器的控制台中打印。用谷歌搜索这个词来找出如何显示它,超级简单的东西。您还可以在console.log函数调用上设置一个断点(googlehow-to-do),这样您就可以检查从ajax调用返回的对象

而且,据我所知,console.log在IE中无法工作

玩得开心。

函数getCities(回调){
function getCities(callback){
        var string = $.ajax ({
                        url: "getCities.php",
                        dataType: 'json',
                        success:callback
                   });       
    }

    $(document).ready(function (){ 
        getCities(function(data){
             console.log(data);
             var city = JSON.parse(data);
             if (city.length > 0) {
                document.write(city.pop + "<br/>");
             }
        });
    });
var字符串=$.ajax({ url:“getCities.php”, 数据类型:“json”, 成功:回调 }); } $(文档).ready(函数(){ getCities(函数(数据){ 控制台日志(数据); var city=JSON.parse(数据); 如果(城市长度>0){ document.write(city.pop+“
”); } }); });
Ajax是自动的,不能使用
var city=getCities()。因为当您调用它时,ajax响应还没有到达。您需要传入一个回调函数,当ajax响应到达时,调用该函数以获得响应