Jak mogę wyświetlić JSON w łatwym do odczytu (dla czytelników) formacie? Szukam przede wszystkim wcięć i białych znaków, być może nawet kolorów / stylów czcionek / itp.
javascript
json
pretty-print
znak
źródło
źródło
<pre>
tag.Odpowiedzi:
Ładne drukowanie jest implementowane natywnie
JSON.stringify()
. Trzeci argument umożliwia ładne drukowanie i ustawia odstępy do użycia:Jeśli potrzebujesz podświetlania składni, możesz użyć magii wyrażeń regularnych:
Zobacz w akcji tutaj: jsfiddle
Lub pełny fragment podany poniżej:
Pokaż fragment kodu
źródło
<pre>
.#transactionResponse
element mawhite-space: pre;
styl CSS.stringify(...)
działa na obiektach JSON , a nie na ciągach JSON. Jeśli masz ciąg, musiszJSON.parse(...)
najpierwOdpowiedź użytkownika Pumbaa80 jest świetna, jeśli masz obiekt, który chcesz wydrukować. Jeśli zaczynasz od prawidłowego ciągu JSON , który chcesz dość wydrukować, musisz najpierw przekonwertować go na obiekt:
To buduje obiekt JSON z ciągu, a następnie konwertuje go z powrotem na ciąg za pomocą ładnego wydruku JSON stringify.
źródło
JSON.parse
więc zmodyfikowałem goJSON.stringify(jsonString, null, 2)
. Zależy od twojego JSON / Object.<pre></pre>
znaczniki.JSON.parse
umiera tylko, jeśli masz niepoprawny kod JSON lub jest on już przekonwertowany na obiekt ... upewnij się, że wiesz, z jakim typem danych masz do czynienia przed próbąJSON.parse
pre
robi.Lepszy sposób.
Prettify JSON Array w JavaScript
źródło
Na podstawie odpowiedzi Pumbaa80 zmodyfikowałem kod, aby używał kolorów console.log (na pewno działa na Chrome), a nie HTML. Dane wyjściowe można zobaczyć w konsoli. Można edytować zmienne _ wewnątrz funkcji, dodając nieco stylu.
Oto bookmarklet, którego możesz użyć:
Stosowanie:
Edycja: Właśnie próbowałem uciec symbol% za pomocą tego wiersza, po deklaracji zmiennych:
Ale dowiaduję się, że Chrome nie obsługuje% ucieczki w konsoli. Dziwne ... Może to zadziała w przyszłości.
Twoje zdrowie!
źródło
W przypadku wyświetlania w HTML należy dodać balis
<pre></pre>
Przykład:
Pokaż fragment kodu
źródło
<pre>
Jest koniecznością, jeśli pokażesz JSON w A<div>
. Wybitny tylko za tę wskazówkę!Korzystam z rozszerzenia JSONView Chrome (jest tak ładne, jak to możliwe :):
Edycja: dodano
jsonreport.js
Wydałem także niezależną przeglądarkę plików JSON do drukowania w Internecie, jsonreport.js, która zawiera czytelny dla człowieka raport HTML5, którego można użyć do przeglądania dowolnych danych JSON.
Możesz przeczytać więcej o tym formacie w nowym formacie JavaScript HTML5 Report Format .
źródło
Możesz użyć
console.dir()
skrótu doconsole.log(util.inspect())
. (Jedyna różnica polega na tym, że omija ona dowolną niestandardowąinspect()
funkcję zdefiniowaną na obiekcie).Wykorzystuje podświetlanie składni , inteligentne wcięcia , usuwa cudzysłowy z kluczy i sprawia, że dane wyjściowe są tak ładne, jak to tylko możliwe.
i dla wiersza poleceń:
cat package.json | node -e "process.stdin.pipe(new stream.Writable({write: chunk => console.dir(JSON.parse(chunk), {depth: null, colors: true})}))"
źródło
Oto niesamowity kod HTML użytkownika121244555621 przystosowany do terminali. Przydatne do debugowania skryptów węzłów:
Stosowanie:
źródło
Do celów debugowania używam:
źródło
console.debug(data);
(przynajmniej) Chrome i Firefox. Nie pokazuje reprezentacji JSONdata
, a tym bardziej ładnie wydrukowanej.console.debug("%s: %o x %d", str, data, cnt);
może być komuś pomocna.console.dir
która pozwala nawigować po danych.Niezadowolony z innych ładnych drukarek dla Ruby, napisałem własny ( NeatJSON ), a następnie przeniosłem go na JavaScript, w tym bezpłatny formatator online . Kod jest darmowy na licencji MIT (dość permisywny).
Funkcje (wszystkie opcjonalne):
Skopiuję tutaj kod źródłowy, aby nie był to tylko link do biblioteki, ale zachęcam do przejścia na stronę projektu GitHub , ponieważ będzie on aktualizowany, a poniższy kod nie.
źródło
Wielkie dzięki @all! W oparciu o poprzednie odpowiedzi, oto kolejna odmienna metoda zapewniająca niestandardowe reguły zastępowania jako parametr:
źródło
To dobrze działa:
Przeczytaj więcej tutaj: https://developer.mozilla.org/pt-BR/docs/Web/API/Console/table
źródło
JSON Douglasa Crockforda w bibliotece JavaScript wydrukuje JSON za pomocą metody stringify.
Przydatne mogą być również odpowiedzi na to starsze pytanie: Jak ładnie wydrukować JSON w skrypcie powłoki (unix)?
źródło
Dzisiaj napotkałem problem z kodem @ Pumbaa80. Usiłuję zastosować wyróżnianie składni JSON do danych, które renderuję w widoku Mithril , więc muszę utworzyć węzły DOM dla wszystkich danych
JSON.stringify
wyjściowych.Podzieliłem też naprawdę długi regex na jego części składowe.
Kod w kontekście na Github tutaj
źródło
Oto prosty komponent formatu / koloru JSON napisany w React:
Zobacz, jak działa w tym CodePen: https://codepen.io/benshope/pen/BxVpjo
Mam nadzieję, że to pomaga!
źródło
Możesz użyć
JSON.stringify(your object, null, 2)
Drugi parametr może być użyty jako funkcja zastępująca, która przyjmuje klucz i Val jako parametry. Można go użyć, jeśli chcesz zmodyfikować coś w obiekcie JSON.więcej informacji: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
źródło
Jeśli potrzebujesz tego do pracy w obszarze tekstowym, zaakceptowane rozwiązanie nie będzie działać.
<textarea id='textarea'></textarea>
$("#textarea").append(formatJSON(JSON.stringify(jsonobject),true));
źródło
Jeśli szukasz ładnej biblioteki do upiększania JSON na stronie internetowej ...
Prism.js jest całkiem niezły.
http://prismjs.com/
Znalazłem użycie JSON.stringify (obj, undefined, 2), aby uzyskać wcięcie, a następnie użycie pryzmatu do dodania motywu było dobrym podejściem.
Jeśli ładujesz w JSON za pomocą wywołania ajax, możesz uruchomić jedną z metod narzędziowych Prism, aby uzyskać wstępny efekt
Na przykład:
źródło
To jest miłe:
https://github.com/mafintosh/json-markup from
mafintosh
HTML
Przykładowy arkusz stylów można znaleźć tutaj
źródło
Nie mogłem znaleźć żadnego rozwiązania, które miałoby dobre podświetlanie składni dla konsoli, więc oto mój 2p
Zainstaluj i dodaj zależność cli-highlight
Zdefiniuj logjson globalnie
Posługiwać się
źródło
Polecam używać HighlightJS . Wykorzystuje tę samą zasadę co zaakceptowana odpowiedź, ale działa również w wielu innych językach i ma wiele predefiniowanych schematów kolorów . Jeśli używasz RequireJS , możesz wygenerować kompatybilny moduł z
Generacja opiera się na Python3 i Javie. Dodaj,
-n
aby wygenerować niezminimalizowaną wersję.źródło
Oto jak możesz drukować bez użycia funkcji natywnej.
źródło
Najprostszy sposób wyświetlenia obiektu do celów debugowania:
Jeśli chcesz wyświetlić obiekt w DOM, powinieneś wziąć pod uwagę, że może on zawierać ciągi znaków, które byłyby interpretowane jako HTML. Dlatego musisz uciec ...
źródło
źródło
Aby wyróżnić i upiększyć go
HTML
za pomocąBootstrap
:źródło