Jak mogę ładnie sformatować plik JSON, z wszystkimi poprawnymi wcięciami i wszystkim?

Mam plik JSON na CentOS, w którym cały tekst znajduje się w tym samym wierszu. Jak mogę ładnie sformatować go z wszystkimi poprawnymi wcięciami i wszystkim?

Komentarze

  • Czy możesz pokazać nam przykładowy plik? Czy to musi być automatyczne? Jeśli nie, po prostu załaduj go do porządnego edytora tekstu i zrób to ręcznie (w emacsie zaznacz wszystko i M-X indent-selection).
  • Spójrz na jq. Bardzo przydatny, jeśli chcesz przetwarzać JSON.

Odpowiedź

Użyj jq bardzo dobry procesor JSON i według osobistych preferencji jest to najlepszy dostępny na rynku

do ładnego wydruku, użyj

jq . file_name 

Komentarze

  • Obecnie mam problem z jq, ponieważ jest bardzo liberalny. Po prostu chcę, żeby zmieniło białe spacje, ale zamiast tego zmienia rzeczy takie jak 1.23e5 na 123000 i 0 na 0.0 i NaN na null i takie rzeczy. Z tego powodu nie mogę już ' mu ufać. To ' to nie tylko program do formatowania, ale ' jest jednocześnie środkiem odkażającym, co nie jest tym, czego teraz chcę.

Odpowiedź

Jeśli nie chcesz instalować dodatkowego pakietu i masz dostępny Python, możesz zrobić:

python -m json.tool myfile.json 

Obsługuje również odczyt ze standardu STDIN

Odpowiedź

Użyj pakietu yajl, Yet Another JSON Library. W CentOS 7 znajduje się on w repozytorium podstawowym i najprawdopodobniej jest już zainstalowany na komputerze.

Aby ładnie wydrukować plik JSON:

cat myfile.json | json_reformat 

lub po prostu

json_reformat < myfile.json 

Aby sprawdzić, czy plik ma poprawną składnię JSON:

json_verify < myfile.json 

Komentarze

  • zainstaluj za pomocą sudo apt install yajl-tools w Ubuntu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *