我有一个使用 KornShell 解析 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。
任何帮助是极大的赞赏。