KornShell を使用して JSON 出力を文字列として処理することにより、JSON 出力を解析するための実用的なコードがあります。私が抱えている問題は、ベンダーが私が興味を持っているフィールドの位置を変更し続けていることです。JSON では、キーと値のペアで解析できることを理解しています。
これを行うことができるものはありますか?特定の分野に興味があり、それを使用して別の RESTAPI 呼び出しのステータスをチェックしたいと考えています。
私のサンプルjson出力は次のようなものです:
JSONDATA value :
{
"status": "success",
"job-execution-id": 396805,
"job-execution-user": "flexapp",
"job-execution-trigger": "RESTAPI"
}
job-execution-id
スクリプトの残りの部分でこのジョブを監視するには、この値が必要です。
次のコマンドを使用して解析しています。
RUNJOB=$(print ${DATA} |cut -f3 -d':'|cut -f1 -d','| tr -d [:blank:]) >> ${LOGDIR}/${LOGFILE}
これの問題は、フィールドが で区切られていること:
です。フィールドの位置は、リリース中にベンダーによって変更されることが知られています。
"job-execution-id": 396805
そのため、json出力のどこにいても、常に のキーと値のペアを提供するユーティリティを使用できるかどうかを確認しようとしています。
私はjsawkを見始めました.jsインタープリターをマシンにインストールする必要がありますが、これは望ましくありません。問題を解決するために必要な RPM を見つける方法についてのヒントはありますか?
RHEL5.5を使用しています。
どんな助けでも大歓迎です。