2017-04-12 4 views
1

J'essaye d'analyser une réponse json à partir d'un appel d'API REST. Mon awk n'est pas fort. Ceci est un script shell bash, et j'utilise curl pour obtenir la réponse et l'écrire dans un fichier. Mon problème consiste uniquement à réduire la réponse en parties utiles.Parse VMware REST Réponse de l'API

La réponse est tout accolés sur une ligne et ressemble à ceci:

{ 
    "value": { 
     "summary": "Patch for VMware vCenter Server Appliance 6.5.0", 
     "install_time": "2017-03-22T22:43:25 UTC", 
     "product": "VMware vCenter Server Appliance", 
     "build": "5178943", 
     "releasedate": "March 14, 2017", 
     "type": "vCenter Server with an external Platform Services Controller", 
     "version": "6.5.0.5300" 
    } 
} 

Je suis intéressé par écrit simplement le type, la version et les chaînes de produits dans un fichier journal. Idéalement sur 3 lignes, mais je m'en fiche vraiment; J'ai simplement besoin d'être capable d'identifier la construction etc au moment où ce script de sauvegarde a fonctionné, donc si j'ai besoin de reconstruire & restaurer je peux m'assurer que j'ai une version compatible.

Répondre

2

Votre API Rest vous donne le format JSON, il est le mieux adapté pour un analyseur de JSON comme jq:

curl -s '/rest/endpoint' | jq -r '.value | .type,.version,.product' > config.txt 
+0

C'est génial. Je ne suis pas à 100% désireux d'ajouter un composant supplémentaire pour le faire fonctionner, mais j'espère que certains commentaires appropriés dans les journaux devraient diriger les gens à pouvoir recréer à l'avenir si nécessaire. S'il y a un moyen raisonnable de le faire avec des outils intégrés (awk cut etc), alors je tiens à en entendre parler aussi. –

+0

Test, travail, simple. Marqué comme répondu. –