Hoe kan ik een JSON-bestand mooi formatteren, met alle juiste inspringingen en alles?

Ik heb een JSON-bestand op CentOS waar alle tekst op dezelfde regel staat. Hoe kan ik het mooi opmaken met alle juiste inspringingen en zo?

Opmerkingen

  • Kunt u ons een voorbeeldbestand laten zien? Moet dit automatisch gebeuren? Als dit niet het geval is, laad het dan gewoon in een fatsoenlijke teksteditor en doe het handmatig (in emacs, selecteer alles en M-X indent-selection).
  • Kijk eens naar jq. Ook erg handig als je JSON wilt verwerken.

Antwoord

Gebruik jq een zeer goede JSON-processor en naar persoonlijke voorkeur de beste die op de markt verkrijgbaar is

voor gewoon mooie afdrukken, gebruik

jq . file_name 

Reacties

  • Het probleem dat ik momenteel heb met jq, is dat het erg liberaal is. Ik wil eigenlijk gewoon dat het witruimten verandert, maar in plaats daarvan verandert het dingen als 1.23e5 naar 123000 en 0 naar 0.0 en NaN naar null en dergelijke dingen. Hierdoor kan ik ' het niet meer vertrouwen. Het ' is niet alleen een formatter, het ' is tegelijkertijd ook een ontsmettingsmiddel, wat ik nu niet wil.

Answer

Als je geen extra pakket wilt installeren en Python beschikbaar hebt, kun je het volgende doen:

python -m json.tool myfile.json 

Het ondersteunt ook het lezen van STDIN

Answer

Gebruik het pakket yajl, Yet Another JSON Library. Op CentOS 7 bevindt het zich in de basisopslagplaats en is het hoogstwaarschijnlijk al op de machine geïnstalleerd.

Om een JSON-bestand mooi af te drukken:

cat myfile.json | json_reformat 

of gewoon

json_reformat < myfile.json 

Om te controleren of een bestand de juiste JSON-syntaxis heeft:

json_verify < myfile.json 

Reacties

  • installeren met sudo apt install yajl-tools in Ubuntu.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *