如何从 $.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 调用以进行令牌响应时出错