Cum se parsează un șir JSON pe linia de comandă linux +15
- 10.07.16 07:25 •
- Indexator •
- # 305370 •
- Habrahabr •
- Traducere •
- 23 •
- 10900
- la fel ca Forbes, doar mai bine.
![Cum se analizează json-string-ul pe linia de comandă linux (șir) Cum se analizează o linie JSON în linia de comandă linux](https://images-on-off.com/images/172/kakrasparsitjsonstrokuvkomandnoystrokeli-6b5ce526.png)
Dacă de multe ori lucrați cu texte în format JSON din linia de comandă sau în scripturile shell, s-ar putea să vă întrebați dacă există vreun utilitar consola care să poată parsa șirul JSON. Consola JSON-parser poate fi convenabilă atunci când testați sau depanați serviciile de rețea JSON. Puteți alimenta răspunsurile JSON dintr-un serviciu web consolă JSON și, astfel, ușor de învățat dificil de citit JSON-răspunsuri sau pentru a le scoate din obiecte individuale.
În acest tutorial, vă voi arăta cum să analizați șirul JSON din linia de comandă.
În Linux, există un procesor JSON consola jq. care face ceea ce avem nevoie. Folosind jq, aveți posibilitatea să analizați, să filtrați, să cartografiați și să transformați structura de date JSON fără prea mult efort.
Instalați jq din depozitul distribuției dvs. Linux.
Pentru Debian și Ubuntu:
De asemenea, puteți instala jq prin simpla descărcare a sistemului binar (disponibil separat pentru sistemele pe 32 de biți și 64 de biți), după cum se arată mai jos.
Binarul jq este de asemenea disponibil pentru platformele Windows, OS X și Solaris, iar codul sursă complet este lansat sub licența MIT.
Următoarele exemple arată cum să analizăm structura de date JSON folosind jq.
Pentru a analiza obiectul JSON:
Pentru a analiza obiectul JSON încorporat:
Pentru a analiza matricea JSON:
Pentru a extrage câmpuri specifice dintr-un obiect JSON:
Dacă JSON mare și structura sa nu este clar (de exemplu: răspuns AWS API) pot fi utilizate github.com/ilyash/show-struct (dezvoltarea mea), care prezintă o structură posibile argumente (căi) pentru JQ.
O soluție mai radicală pentru a lucra cu date structurate într-un shell: ... Shell care acceptă date structurate și nu are nevoie de JQ. Lucrez la: github.com/ilyash/ngs. Exemplu: instanțe = `` aws ec2 descrie-instanțe $ * filtre``
Un instrument bun. Folosesc uneori scripturi. El are mai multe capabilități decât cele descrise în articol, de fapt există un mic limbaj de programare pentru conversia lui JSON.
Utilitate utilă. Recent, am avut un mare ajutor pentru CI - parsarea / transformarea din shell-ul JSON. Răspunsul Stash cu lista de PR sa dovedit a fi de multe ori mai simplu și mai convenabil decât setarea de cârlige sau extensii de scriere. Va trebui să mă întâlnesc și să scriu un articol.