Распечатать JSON-анализируемый объект?



у меня есть объект javascript, который был проанализирован JSON с помощью JSON.parse теперь я хочу распечатать объект, чтобы я мог отладить его (что-то идет не так с функцией). Когда я делаю следующее...



for (property in obj) {
output += property + ': ' + obj[property]+'; ';
}
console.log(output);


Я получаю несколько [объект объекта] в списке. Мне интересно, как бы я напечатал это, чтобы просмотреть содержимое?

679   10  

10 ответов:

большинство консолей отладчика поддерживают прямое отображение объектов. Просто используйте

console.log(obj);

в зависимости от вашего отладчика это, скорее всего, будет отображать объект в консоли, как рухнуло дерево. Вы можете открыть дерево и осмотреть объект.

вы знаете, что означает JSON? JavaScript Object Notation. Это делает довольно хороший формат для объектов.

JSON.stringify(obj) даст вам строковое представление объекта.

попробовать console.dir() вместо console.log()

console.dir(obj);

MDN говорит console.dir() подтверждается:

  • FF8+
  • IE9+
  • Опера
  • Chrome
  • Safari

если вы хотите красивый, многострочный JSON с отступом, то вы можете использовать JSON.stringify С его 3-м аргументом:

JSON.stringify(value[, replacer[, space]])

например:

var obj = {a:1,b:2,c:{d:3, e:4}};

JSON.stringify(obj, null, "    ");

или

JSON.stringify(obj, null, 4);

даст вам следующий результат:

"{
    "a": 1,
    "b": 2,
    "c": {
        "d": 3,
        "e": 4
    }
}"

в браузере console.log(obj) делает еще лучшую работу, но в консоли оболочки (узел.js) это не так.

для печати JSON-анализируемого объекта просто введите

console.log( JSON.stringify(data, null, " ") );

и вы получите выход очень ясно

использовать строковые форматы;

console.log("%s %O", "My Object", obj);

главная Спецификаторы Формата со следующим;

  • %s форматирует значение в виде строки.
  • %d или %i форматирует значение как целое.
  • %f форматирует значение как значение с плавающей точкой.
  • %o форматирует значение как расширяемый элемент DOM (как в Панель элементов).
  • %O форматирует значение как разворачиваемый на JavaScript объект.
  • %c форматирует выходную строку в соответствии со стилями CSS вы обеспечивать.

Firefox также имеет Строка Substitions, которые имеют схожие параметры.

  • %o выводит гиперссылку на объект JavaScript. При нажатии на ссылку открывается инспектор.
  • %d или %i выводит целое число. Форматирование не поддерживается.
  • %s выводит a строка.
  • %f выводит значение с плавающей точкой. Форматирование не поддерживается.

сафари стиль форматирования функции printf

  • %d или %i целое
  • %[0.N]f значение с плавающей запятой с N цифрами точности
  • %o объект
  • %s String

просто использовать

console.info("CONSOLE LOG : ")
console.log(response);
console.info("CONSOLE DIR : ")
console.dir(response);

и вы получите это в консоли chrome:

CONSOLE LOG : 
facebookSDK_JS.html:56 Object {name: "Diego Matos", id: "10155988777540434"}
facebookSDK_JS.html:57 CONSOLE DIR : 
facebookSDK_JS.html:58 Objectid: "10155988777540434"name: "Diego Matos"__proto__: Object

простая функция для оповещения содержимого объекта или массива .
Вызовите эту функцию с массивом или строкой или объектом, который предупреждает содержимое.

функции

function print_r(printthis, returnoutput) {
    var output = '';

    if($.isArray(printthis) || typeof(printthis) == 'object') {
        for(var i in printthis) {
            output += i + ' : ' + print_r(printthis[i], true) + '\n';
        }
    }else {
        output += printthis;
    }
    if(returnoutput && returnoutput == true) {
        return output;
    }else {
        alert(output);
    }
}

использование

var data = [1, 2, 3, 4];
print_r(data);

следующий код отобразит полные данные json в окне предупреждения

var data= '{"employees":[' +
'{"firstName":"John","lastName":"Doe" },' +
'{"firstName":"Anna","lastName":"Smith" },' +
'{"firstName":"Peter","lastName":"Jones" }]}';

json = JSON.parse(data);
window.alert(JSON.stringify(json));

Если вы хотите отладить, почему бы не использовать консоль debug

window.console.debug(jsonObject);

Comments

    Ничего не найдено.