2017-04-12 17 views
1

REST API呼び出しからjson応答を解析しようとしています。私のawkは強くない。これはbashシェルスクリプトで、curlを使ってレスポンスを取得してファイルに書き出します。私の問題は、単に応答を有効な部分に分割しようとしているだけです。VMware REST APIの応答を解析する

応答は、すべてが1行にまとめて実行され、次のようになります。

{ 
    "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" 
    } 
} 

私は単にログファイルに種類、バージョン、および製品の文字列を書くことに興味があります。理想的には3行では、私は本当に気にしません。私は単に、このバックアップスクリプトが実行された時点でビルドなどを識別できるようにする必要があるので、&を再構築する必要がある場合は、互換性のあるビルドがあることを確認することができます。

答えて

2

あなたのREST APIは、それがjqのようなJSONパーサーに最適です、あなたはJSON形式を与える:

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

素晴らしいすなわち。私はそれを動作させるために追加のコンポーネントを追加しなければならないことを100%熱望しているわけではありませんが、ログに適切なコメントを入れれば、必要に応じて将来再現できるようになるはずです。組み込みツール(awk cutなど)でこれを行う合理的な方法があるなら、私はそれらについても聞きたいと思っています。 –

+0

テスト、作業、シンプル。回答としてマーク。 –