Parseur JSON en bash

Droit au but:

Vous aimeriez pouvoir parser un fichier json simplement avec une commande bash ? Voici un moyen élégant avec nodejs de le faire.

Il vous faudra avoir installé nodejs et le package manager npm. Pour le faire :

$ sudo apt-get install nodejs npm
$ sudo npm install -g json

Vous avez maintenant accès à une commande json directement dans votre shell et du coup pour formatter un fichier json

$ echo '{"foo":"bar"}' | json
>>> {
>>>   "foo": "bar"
>>> }

On peut aller un peu plus loin en

$ curl -s https://raw.githubusercontent.com/google/google-api-php-client/master/composer.json  | json

Pour extraire simplement la section 'require'

$ curl -s https://raw.githubusercontent.com/google/google-api-php-client/master/composer.json  | json require

Pour extraire les sections 'require' et 'require-dev'

$ curl -s https://raw.githubusercontent.com/google/google-api-php-client/master/composer.json  | json require require-dev

On peut aussi extraire des informations sous forme de tableau facilement du json

$echo '[{"name":"alice", "age": "32"},{"name":"bob", "age":"28"}]' | json -ga name age
>>> alice 32
>>> bob 28

Pour lister toutes les options de la commande

$ json --help

Parser Json en bash, merci docker

Il suffit de récupérer l'image

$ docker pull goovy/jsonparser

puis pour l'utiliser:

$ curl -s https://raw.githubusercontent.com/google/google-api-php-client/master/composer.json | dojson require

en utilisant l'alias dojson qui remplace la commande docker run -i --rm goovy/jsonparser json.