Как я могу отобразить JSON в удобном для чтения (для читателей) формате? Я ищу в первую очередь отступы и пробелы, возможно, даже с цветами / стилями шрифтов / и т. Д.
javascript
json
pretty-print
отметка
источник
источник
<pre>
тег.Ответы:
Pretty-печать реализована изначально в
JSON.stringify()
. Третий аргумент включает красивую печать и устанавливает интервал для использования:Если вам нужна подсветка синтаксиса, вы можете использовать магию регулярных выражений, например:
Смотрите в действии здесь: jsfiddle
Или полный фрагмент ниже:
Показать фрагмент кода
источник
<pre>
, хотя.#transactionResponse
элемент имеетwhite-space: pre;
стиль CSS.stringify(...)
работает на объектах JSON , а не на строках JSON. Если у вас есть строка, вам нужноJSON.parse(...)
сначалаОтвет пользователя Pumbaa80 будет отличным, если у вас есть объект, который вы хотите довольно хорошо напечатать. Если вы начинаете с допустимой строки JSON , которую хотите печатать, вам нужно сначала преобразовать ее в объект:
Это создает объект JSON из строки, а затем преобразует его обратно в строку, используя красивую печать JSON stringify.
источник
JSON.parse
поэтому я изменил его, чтобы бытьJSON.stringify(jsonString, null, 2)
. Зависит от вашего JSON / объекта.<pre></pre>
теги.JSON.parse
умирает только в том случае, если у вас есть недопустимая строка JSON или она уже преобразована в объект ... прежде чем пытаться это сделать, убедитесь, что вы знаете, с каким типом данных вы имеете делоJSON.parse
Лучший путь.
Украсьте массив JSON в Javascript
источник
Основываясь на ответе Pumbaa80, я изменил код, чтобы использовать цвета console.log (работающие на Chrome наверняка), а не HTML. Вывод можно увидеть внутри консоли. Вы можете редактировать переменные _ внутри функции, добавляя еще немного стилей.
Вот букмарклет, который вы можете использовать:
Применение:
Изменить: я только что попытался экранировать символ% с этой строкой, после объявления переменных:
Но я обнаружил, что Chrome не поддерживает% экранирования в консоли. Странно ... Может быть, это сработает в будущем.
Ура!
источник
В случае отображения в HTML, вы должны добавить баланс
<pre></pre>
Пример:
Показать фрагмент кода
источник
<pre>
необходимо, если вы показываете JSON в<div>
. Проголосовал только за эту подсказку!Я использую расширение JSONView Chrome (оно настолько красивое, насколько это возможно :):
Редактировать: добавлено
jsonreport.js
Я также выпустил автономный JSONreport.js для просмотра в режиме онлайн, который предоставляет удобочитаемый отчет HTML5, который можно использовать для просмотра любых данных JSON.
Вы можете прочитать больше о формате в новом JavaScript HTML5 Report Format .
источник
Вы можете использовать
console.dir()
, что является ярлыком дляconsole.log(util.inspect())
. (Единственное отличие состоит в том, что он обходит любую пользовательскуюinspect()
функцию, определенную для объекта.)Он использует подсветку синтаксиса , умные отступы , удаляет кавычки из ключей и просто делает вывод настолько красивым, насколько это возможно.
и для командной строки:
cat package.json | node -e "process.stdin.pipe(new stream.Writable({write: chunk => console.dir(JSON.parse(chunk), {depth: null, colors: true})}))"
источник
Вот удивительный HTML-код user123444555621, адаптированный для терминалов. Удобно для отладки скриптов Node:
Применение:
источник
Для отладки я использую:
источник
console.debug(data);
(по крайней мере) в Chrome и Firefox. Он не показывает JSON-представлениеdata
, не говоря уже о напечатанном.console.debug("%s: %o x %d", str, data, cnt);
может все еще быть полезным для кого-то.console.dir
что позволяет перемещаться по данным.Не удовлетворенный другими красивыми принтерами для Ruby, я написал свой собственный ( NeatJSON ), а затем портировал его на JavaScript, включая бесплатный онлайн-форматер . Код свободен под лицензией MIT (довольно разрешительный).
Особенности (все по желанию):
Я скопирую здесь исходный код, чтобы это была не просто ссылка на библиотеку, но я призываю вас перейти на страницу проекта GitHub , так как она будет обновляться, а приведенный ниже код - нет.
источник
Большое спасибо @all! Основываясь на предыдущих ответах, вот еще один вариант метода, предоставляющий пользовательские правила замены в качестве параметра:
источник
Это работает хорошо:
Подробнее читайте здесь: https://developer.mozilla.org/pt-BR/docs/Web/API/Console/table
источник
JSON в библиотеке JavaScript Дугласа Крокфорда будет довольно печатать JSON с помощью метода stringify.
Вы также можете найти полезные ответы на этот старый вопрос: как мне красиво напечатать JSON в (unix) сценарии оболочки?
источник
Я столкнулся с проблемой сегодня с кодом @ Pumbaa80. Я пытаюсь применить подсветку синтаксиса JSON к данным, которые я отображаю в представлении Mithril , поэтому мне нужно создать DOM-узлы для всего в
JSON.stringify
выводе.Я разделил действительно длинное регулярное выражение на его составные части.
Код в контексте на Github здесь
источник
Вот простой компонент формата / цвета JSON, написанный на React:
Посмотрите, как это работает в этом CodePen: https://codepen.io/benshope/pen/BxVpjo
Надеюсь, это поможет!
источник
Ты можешь использовать
JSON.stringify(your object, null, 2)
Второй параметр можно использовать в качестве функции заменителя, который принимает ключ и Val в качестве параметров. Это можно использовать в случае, если вы хотите что-то изменить в своем объекте JSON.дополнительная ссылка: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
источник
Если вам нужно это для работы в текстовой области, то принятое решение не будет работать.
<textarea id='textarea'></textarea>
$("#textarea").append(formatJSON(JSON.stringify(jsonobject),true));
источник
Если вы ищете симпатичную библиотеку для приведения в порядок json на веб-странице ...
Prism.js довольно хорош.
http://prismjs.com/
Я обнаружил, что использование JSON.stringify (obj, undefined, 2) для получения отступа, а затем использование призмы для добавления темы было хорошим подходом.
Если вы загружаете в JSON с помощью вызова ajax, то вы можете запустить один из служебных методов Prism для предварительного преобразования
Например:
источник
Это мило:
https://github.com/mafintosh/json-markup от
mafintosh
HTML
Пример таблицы стилей можно найти здесь
источник
Не удалось найти ни одного решения с хорошей подсветкой синтаксиса для консоли, поэтому вот мой 2p
Установить и добавить Cli-Highlight зависимость
Определите logjson глобально
использование
источник
Вот как вы можете печатать без использования встроенной функции.
источник
Самый простой способ отобразить объект для отладки:
Если вы хотите отобразить объект в DOM, вы должны учитывать, что он может содержать строки, которые будут интерпретироваться как HTML. Следовательно, вам нужно уйти ...
источник
источник
Чтобы выделить и украсить его с
HTML
помощьюBootstrap
:источник
Я рекомендую использовать HighlightJS . Он использует тот же принцип, что и принятый ответ, но работает и для многих других языков и имеет много предопределенных цветовых схем . Если вы используете RequireJS , вы можете создать совместимый модуль с
Поколение опирается на Python3 и Java. Добавить
-n
для создания не минимизированной версии.источник