У меня есть объект javascript, который был проанализирован с помощью JSON. JSON.parse
Теперь я хочу напечатать объект, чтобы я мог его отладить (что-то не так с функцией). Когда я делаю следующее ...
for (property in obj) {
output += property + ': ' + obj[property]+'; ';
}
console.log(output);
Я получаю несколько [объект объекта] в списке. Мне интересно, как бы я распечатать это, чтобы просмотреть содержимое?
javascript
json
parsing
printing
Skizit
источник
источник
Ответы:
Большинство консолей отладчика поддерживают непосредственное отображение объектов. Просто используйте
В зависимости от вашего отладчика, это наиболее вероятно будет отображать объект в консоли в виде свернутого дерева. Вы можете открыть дерево и осмотреть объект.
источник
console.log("object: " + obj)
он не отображает объект, а вместо этого выдает «object: [Object obj]».console.log("object: %O", obj)
(Chrome) илиconsole.log("object: %o", obj)
(Firefox | Safari) предоставят вам доступ к деталям объекта, см. Мой ответ ниже.console.log("My object: ", obj)
Вы знаете, что означает JSON? Нотация объектов JavaScript . Это делает довольно хороший формат для объектов.
JSON.stringify(obj)
вернет вам строковое представление объекта.источник
попробуй
console.dir()
вместоconsole.log()
MDN говорит,
console.dir()
что поддерживается:источник
console.dir()
также доступен в FF8 +, Opera, Chrome и Safari: developer.mozilla.org/en-US/docs/Web/API/console.dirЕсли вам нужен симпатичный многострочный JSON с отступом, вы можете использовать
JSON.stringify
его с третьим аргументом:Например:
или
даст вам следующий результат:
В браузере
console.log(obj)
работает еще лучше, а в консоли оболочки (node.js) - нет.источник
Распечатать JSON-анализируемый объект просто введите
console.log( JSON.stringify(data, null, " ") );
и вы получите очень четкий вывод
источник
Используйте строковые форматы;
Chrome имеет спецификаторы формата со следующим;
%s
Форматирует значение в виде строки.%d
или%i
Форматирует значение как целое число.%f
Форматирует значение как значение с плавающей запятой.%o
Форматирует значение как расширяемый элемент DOM (как на панели «Элементы»).%O
Форматирует значение как расширяемый объект JavaScript.%c
Форматирует выходную строку в соответствии с предоставленными вами стилями CSS.Firefox также имеет String Substitions, которые имеют аналогичные параметры.
%o
Выводит гиперссылку на объект JavaScript. При нажатии на ссылку открывается инспектор.%d
или%i
выводит целое число. Форматирование пока не поддерживается.%s
Выводит строку.%f
Выводит значение с плавающей точкой. Форматирование пока не поддерживается.Safari имеет форматтеры в стиле printf
%d
или%i
целое число%[0.N]f
Значение с плавающей точкой с N цифрами точности%o
объект%s
строкаисточник
Красиво и просто:
источник
Просто используйте
и вы получите это в консоли Chrome:
источник
Простая функция для оповещения о содержимом объекта или массива.
Вызовите эту функцию с массивом или строкой или объектом, который предупреждает содержимое.
функция
использование
источник
Следующий код отобразит полные данные JSON в окне предупреждения
источник
Если вы хотите отладить, почему бы не использовать консольную отладку
источник
Если вы работаете в js на сервере, немного больше гимнастики проходит долгий путь ... Вот мой ppos (pretty-print-on-server):
которая делает огромную работу по созданию чего-то, что я действительно могу прочитать, когда пишу код сервера.
источник
Я не знаю, как это никогда не делалось официально, но я добавил свой собственный
json
метод кconsole
объекту, чтобы упростить печать строковых журналов:Много раз необходимо просматривать строковую версию объекта, потому что печать его как есть (необработанный объект) будет печатать «живую» версию объекта, которая мутирует в ходе выполнения программы, и не будет отражать состояние объекта в зарегистрированный момент времени, например:
источник