Ich habe eine JSON-Datei unter CentOS, in der sich der gesamte Text in derselben Zeile befindet. Wie kann ich es hübsch mit den richtigen Einrückungen und allem formatieren?
Kommentare
- Können Sie uns eine Beispieldatei zeigen? Muss dies automatisch erfolgen? Wenn nicht, laden Sie es einfach in einen anständigen Texteditor und führen Sie es manuell aus (wählen Sie in Emacs alles und
M-X indent-selection
aus). - Schauen Sie sich
jq
. Auch sehr praktisch, wenn Sie JSON verarbeiten möchten.
Antwort
Verwenden Sie jq ein sehr guter JSON-Prozessor und aus persönlicher Sicht der beste auf dem Markt erhältliche
für nur hübschen Druck, verwenden Sie
jq . file_name
Kommentare
- Das Problem, das ich derzeit mit jq habe, ist, dass es sehr liberal ist. Ich möchte im Grunde nur, dass es Leerzeichen ändert, aber stattdessen ändert es Dinge wie 1.23e5 in 123000 und 0 in 0.0 und NaN in null und solche Dinge. Aus diesem Grund kann ich ' ihm nicht mehr vertrauen. ' ist nicht nur ein Formatierer, sondern ' ist gleichzeitig auch ein Desinfektionsmittel, was ich momentan nicht möchte.
Antwort
Wenn Sie kein zusätzliches Paket installieren möchten und Python zur Verfügung haben, können Sie Folgendes tun:
python -m json.tool myfile.json
Es unterstützt auch das Lesen von STDIN
Antwort
Verwenden Sie das Paket yajl
, eine weitere JSON-Bibliothek. Unter CentOS 7 befindet es sich im Basis-Repo und ist höchstwahrscheinlich bereits auf dem Computer installiert.
So drucken Sie eine JSON-Datei hübsch aus:
cat myfile.json | json_reformat
oder einfach
json_reformat < myfile.json
So überprüfen Sie, ob eine Datei die richtige JSON-Syntax hat:
json_verify < myfile.json
Kommentare
- Installation mit
sudo apt install yajl-tools
in Ubuntu.