如何从$ .getJSON调用以print_r()方式打印关联数组?

时间:2012-02-08 12:06:20

标签: javascript jquery

简单的事情。

$。使用getJSON,并且调用的.php文件的结果在jquery回调函数中被捕获为响应。 json编码的php数组是一个关联数组。

$.getJSON("file.php",function(response){

// print the associative response array in var_dump or print_r fasion

});

file.php包含:

<?php

$my_array=array();

//$my_array['random_index1']="random_value1";

//$my_array['random_index2']="random_value2";

//$my_array['random_index3']="random_value3";
// and so on


echo json_encode($my_array);


?>

$ my_array有随机键和值。

如何打印整个'响应'数组就像在php中的print_r方式一样?

EDIT1:我想在网页或提醒框中打印它。不是我只想在javascript控制台(chrome,FF或其他)中观看值。

EDIT2:如果我按如下方式编写$ .getJSON的正文:为什么它不起作用:

    for(var i in response){

    console.log("i="+i+" content="+response[i]);

}

4 个答案:

答案 0 :(得分:1)

我相信console.dir()是您正在寻找的:

https://developer.mozilla.org/en-US/docs/Web/API/Console.dir

唯一的缺点是它不允许标记每个输出的对象,它也是一种非标准的控制台方法。

答案 1 :(得分:0)

如果您有ChromeFirebug,则可以使用console.log(response)。在控制台中,您可以单击已记录的对象以查看其属性。

答案 2 :(得分:0)

使用Doug Crockford的JSON library之类的内容将对文本的回复转换为console.log

function(response) {
    console.log(JSON.stringify(response));
}

答案 3 :(得分:0)

$.getJSON("file.php", function(data) {
    var items = [];

    $.each(data, function(key, val) {
        items.push('<li id="' + key + '">' + val + '</li>');
    });

    $('<ul/>', {
        'index': 'my-list',
        html: items.join('')
    }).appendTo('body');
});

使用此结构,示例循环遍历请求的数据,构建无序列表,并将其附加到正文中。

如果您需要其他格式,您可以修改每个格式,例如:

 $.each(data, function(key, val) {
       alert('key:' + key + ' value:' + val);
    });

我承认我借鉴了:http://api.jquery.com/jQuery.getJSON/