Quelqu'un peut-il recommander un analyseur JSON Unix (à votre goût) pouvant être utilisé pour analyser les valeurs d'une réponse JSON dans un pipeline?
Réponses
Trop de publicités?Je préfère `` qui semble être disponible par défaut sur la plupart * nix de systèmes d’exploitation par défaut.
Mais il est à noter que ceci va trier toutes les clés dans l’ordre alphabétique, qui est ou peut être une bonne chose dans où le json généré par certains langue utilisée non ordonnée HashMaps...
Si vous êtes à la recherche d'un portable C compilé outil:
http://stedolan.github.com/jq/
Sur le site:
jq est comme sed pour les données JSON - vous pouvez l'utiliser pour couper et le filtre et la carte et de transformer des données structurées avec la même facilité que sed, awk, grep et amis vous permettent de jouer avec le texte.
jq peut marquer le format des données que vous avez dans celui que vous voulez avec très peu d'effort, et le programme pour le faire est souvent plus court et plus simple que ce que vous attendez.
Tutoriel: http://stedolan.github.com/jq/tutorial/
Manuel: http://stedolan.github.com/jq/manual/
Télécharger: http://stedolan.github.com/jq/download/
J'ai créé un module spécialement conçu pour la ligne de commande JSON manipulation:
https://github.com/ddopson/underscore-cli
- FLEXIBLE - LE "swiss army knife" outil pour le traitement des données JSON - peut être utilisé comme un simple imprimeur, ou plein alimenté Javascript de ligne de commande
- PUISSANT - Expose toute la puissance et la fonctionnalité de underscore.js (plus le trait de soulignement.chaîne de caractères)
- SIMPLE - il est simple à écrire JS one-liners similaire à l'aide de "perl -pe"
- ENCHAÎNÉS - commande Plusieurs invokations peuvent être liés ensemble pour créer un pipeline de traitement de données
- MULTI-FORMAT Riche de soutien pour l'entrée / la sortie des formats d'impression, strict, JSON, etc [bientôt]
- DOCUMENTÉ - Excellente ligne de commande de la documentation avec de multiples exemples pour chaque commande
Il vous permet de faire des choses puissantes vraiment facilement:
cat earthporn.json | underscore select '.data .title'
# [ 'Fjaðrárgljúfur canyon, Iceland [OC] [683x1024]',
# 'New town, Edinburgh, Scotland [4320 x 3240]',
# 'Sunrise in Bryce Canyon, UT [1120x700] [OC]',
# ...
# 'Kariega Game Reserve, South Africa [3584x2688]',
# 'Valle de la Luna, Chile [OS] [1024x683]',
# 'Frosted trees after a snowstorm in Laax, Switzerland [OC] [1072x712]' ]
cat earthporn.json | underscore select '.data .title' | underscore count
# 25
underscore map --data '[1, 2, 3, 4]' 'value+1'
# prints: [ 2, 3, 4, 5 ]
underscore map --data '{"a": [1, 4], "b": [2, 8]}' '_.max(value)'
# [ 4, 8 ]
echo '{"foo":1, "bar":2}' | underscore map -q 'console.log("key = ", key)'
# key = foo
# key = bar
underscore pluck --data "[{name : 'moe', age : 40}, {name : 'larry', age : 50}, {name : 'curly', age : 60}]" name
# [ 'moe', 'larry', 'curly' ]
underscore keys --data '{name : "larry", age : 50}'
# [ 'name', 'age' ]
underscore reduce --data '[1, 2, 3, 4]' 'total+value'
# 10
Et il a l'un des meilleurs "smart-blanc" JSON formateurs disponibles:
Si vous avez des demandes de fonctionnalités, un commentaire sur ce post ou en ajouter une question sur github. Je serais heureux de hiérarchiser les fonctions qui sont nécessaires par les membres de la communauté.