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

Posted

技术标签:

【中文标题】如何从 $.getJSON 调用以 print_r() 方式打印关联数组?【英文标题】:how to print the associative array in print_r() fashion from a $.getJSON call? 【发布时间】:2012-02-29 20:50:57 【问题描述】:

简单的事情。

$.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]);


【问题讨论】:

【参考方案1】:

我相信console.dir() 就是您要找的东西:

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

使用类似 Doug Crockford 的 JSON library 将响应转换为文本并使用 console.log 记录它

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

【讨论】:

【参考方案4】:
$.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/

【讨论】:

以上是关于如何从 $.getJSON 调用以 print_r() 方式打印关联数组?的主要内容,如果未能解决你的问题,请参考以下文章

QtDBus。如何调用以 QDBusUnixFileDescriptor 作为参数的方法

如何将参数发送到 HTTPService 调用以作为组件重用

触发从“Keycloak”到“Azure ADB2C”的基本 http 调用以进行令牌响应时出错

csharp 可以从regasm.exe / regsvc.exe调用以执行任意代码的DLL

ASP 子程序北京上海

AJAX 调用以检索 JSON - 如何将结果格式化为屏幕