【发布时间】:2014-07-11 10:38:31
【问题描述】:
我正在使用 bash shell 脚本。我需要使用 shell 脚本执行一个 URL,然后解析来自它的 json 数据。
这是我的网址 - http://localhost:8080/test_beat,点击该网址后我可以得到的回复将来自这两个 -
{"error": "error_message"}
{"success": "success_message"}
下面是我使用 wget 执行 URL 的 shell 脚本。
#!/bin/bash
DATA=$(wget -O - -q -t 1 http://localhost:8080/test_beat)
#grep $DATA for error and success key
现在我不确定如何解析 $DATA 中的 json 响应并查看密钥是成功还是错误。如果键是成功,那么我将打印一条消息“成功”并打印 $DATA 值并以零状态码退出 shell 脚本,但如果键是错误,那么我将打印“错误”并打印 $DATA 值并以非零状态码退出 shell 脚本。
如何在 shell 脚本中解析 json 响应并从中提取密钥?
我不想安装任何库来执行此操作,因为我的 JSON 响应是固定的,并且始终如上所示,因此任何更简单的方法都可以。
更新:-
下面是我最终的 shell 脚本 -
#!/bin/bash
DATA=$(wget -O - -q -t 1 http://localhost:8080/tester)
echo $DATA
#grep $DATA for error and success key
IFS=\" read __ KEY __ MESSAGE __ <<< "$DATA"
case "$KEY" in
success)
exit 0
;;
error)
exit 1
;;
esac
这看起来对吗?
【问题讨论】:
标签: json linux bash shell wget