Распечатать JSON-анализируемый объект?
у меня есть объект javascript, который был проанализирован JSON с помощью JSON.parse теперь я хочу распечатать объект, чтобы я мог отладить его (что-то идет не так с функцией). Когда я делаю следующее...
for (property in obj) {
output += property + ': ' + obj[property]+'; ';
}
console.log(output);
Я получаю несколько [объект объекта] в списке. Мне интересно, как бы я напечатал это, чтобы просмотреть содержимое?
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объект%sString
просто использовать
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));
Comments