Как печатать ассоциативный массив в методе print_r() из вызова $.getJSON?
простая вещь.
$. getJSON используется, и результат вызванного файла .php вызывается как ответ в функции обратного вызова jquery. Json encoded php array - ассоциативный массив.
$.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 имеет случайные ключи и значения.
Как я могу напечатать весь массив "отклик" так же, как метод print_r в php?
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/