De prime abord, ce que réalise gron in.json (i.e. déplier le JSON pour que ce soit manipulable par les outils qui manipulent des lignes de texte brut) s'obtient aussi avec :
jq . in.json avec en prime l'indentation et ça s'en sort mieux en terme de consommation mémoire (cf. l'autre message) Mais parfois il n'est pas présent et je ne peux pas l'installer non plus, donc on regarder du côté des langages de script présents sur la bécane (cas ci-après.)
python -m json.tool in.json dans le cas-ci, mais si on a besoin d'aller plus loin c'est possible
ruby -r json -e 'jj JSON.parse gets' < in.json avec le Gem JSON qu'il faut installer avant s'il ne l'est pas déjà. Il y a aussi jazor qui est sympa
côté PERL...
json_xs -t null < in.json en utilisant le module JSON::XS qui fait appel à du code C (XS pour eXtension System)
sinon on peut se rabattre sur json_pp (PP pour Pur Perl) qui utilise le module JSON:PP présent dans la plupart des installations systèmes.
Il y a aussi un autre module JSON tout court qui permet d'écrire perl -MJSON -nE 'say JSON->new->pretty->encode(from_json $_)' in.json ou perl -MJSON -e 'print encode_json(decode_json(<STDIN>), {pretty => 1})' < in.json par exemple
PHP n'est pas en reste depuis la version 5.2 : php -r 'print_r(json_decode(fgets(STDIN)))' (ça fait longtemps, je l'ai fait de tête sans tester)
En Go...
jsonpp in.json (c'est une petite commande qui ne fait que ça)
[^] # gron'telnatif
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au journal Aujourd'hui on ne parle pas de k-pop, mais de JSON !. Évalué à 4. Dernière modification le 25 juin 2023 à 16:08.
De prime abord, ce que réalise
gron in.json(i.e. déplier le JSON pour que ce soit manipulable par les outils qui manipulent des lignes de texte brut) s'obtient aussi avec :jq . in.jsonavec en prime l'indentation et ça s'en sort mieux en terme de consommation mémoire (cf. l'autre message) Mais parfois il n'est pas présent et je ne peux pas l'installer non plus, donc on regarder du côté des langages de script présents sur la bécane (cas ci-après.)python -m json.tool in.jsondans le cas-ci, mais si on a besoin d'aller plus loin c'est possiblepython3 -c "import sys, json; print(json.load(sys.stdin)" in.jsonexport PYTHONIOENCODING=utf8 python2 -c "import sys, json; print json.load(sys.stdin)" in.jsonruby -r json -e 'jj JSON.parse gets' < in.jsonavec le Gem JSON qu'il faut installer avant s'il ne l'est pas déjà. Il y a aussijazorqui est sympajson_xs -t null < in.jsonen utilisant le moduleJSON::XSqui fait appel à du code C (XS pour eXtension System)json_pp(PP pour Pur Perl) qui utilise le moduleJSON:PPprésent dans la plupart des installations systèmes.JSONtout court qui permet d'écrireperl -MJSON -nE 'say JSON->new->pretty->encode(from_json $_)' in.jsonouperl -MJSON -e 'print encode_json(decode_json(<STDIN>), {pretty => 1})' < in.jsonpar exemplephp -r 'print_r(json_decode(fgets(STDIN)))'(ça fait longtemps, je l'ai fait de tête sans tester)jsonpp in.json(c'est une petite commande qui ne fait que ça)jj -p in.json(c'est un concurrent rapide dejqet donc fait plus)bat -p -l json in.json(cet alternatif àcatest parfois surprenant)mlr --json --ojson in.jsonnode -pe 'JSON.parse(process.argv[1])' in.jsonConvertFrom-JsonAutres outils qui peuvent valoir le détour :
jshon,jwalk,fx,jsawk, etc.P.S. Je n'ai pas mentionné
json-flattenP.S.2 Mentionnez/référencez votre astuce aussi
"It is seldom that liberty of any kind is lost all at once." ― David Hume