如何解析shell脚本中的json响应?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何解析shell脚本中的json响应?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2120字,纯文字阅读大概需要4分钟。
内容图文
![如何解析shell脚本中的json响应?](/upload/InfoBanner/zyjiaocheng/954/a216b6e363914a578f3aba3d393b1c37.jpg)
我正在使用bash shell脚本.我需要使用shell脚本执行URL,然后解析来自它的json数据.
这是我的URL – http:// localhost:8080 / test_beat,点击URL后我可以得到的响应来自这两个 –
{"error": "error_message"}
{"success": "success_message"}
下面是我的shell脚本,它使用wget执行URL.
#!/bin/bash
DATA=$(wget -O - -q -t 1 http://localhost:8080/test_beat)
#grep $DATA for error and success key
现在我不知道如何解析$DATA中的json响应,看看密钥是成功还是错误.如果密钥成功,那么我将打印一条消息“success”并打印$DATA值并退出shell脚本,状态代码为零,但如果密钥错误,那么我将打印“error”并打印$DATA值并使用非零状态代码退出shell脚本.
如何解析json响应并从shell脚本中提取密钥?
我不想安装任何库来执行此操作,因为我的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
这看起来不错吗?
解决方法:
#!/bin/bash
IFS= read -d '' DATA < temp.txt ## Imitates your DATA=$(wget ...). Just replace it.
while IFS=\" read -ra LINE; do
case "${LINE[1]}" in
error)
# ERROR_MSG=${LINE[3]}
printf -v ERROR_MSG '%b' "${LINE[3]}"
;;
success)
# SUCCESS_MSG=${LINE[3]}
printf -v SUCCESS_MSG '%b' "${LINE[3]}"
;;
esac
done <<< "$DATA"
echo "$ERROR_MSG|$SUCCESS_MSG" ## Shows: error_message|success_message
*%b在相应的参数中展开反斜杠转义序列.
更新,因为我最初没有真正得到问题.它应该只是:
IFS=\" read __ KEY __ MESSAGE __ <<< "$DATA"
[[ $KEY == success ]] ## Gives $? = 0 if true or else 1 if false.
你可以进一步检查它:
case "$KEY" in
success)
echo "Success message: $MESSAGE"
exit 0
;;
error)
echo "Error message: $MESSAGE"
exit 1
;;
esac
当然可以用它做类似的明显测试:
if [[ $KEY == success ]]; then
echo "It was successful."
else
echo "It wasn't."
fi
从您上次的评论中可以简单地完成
IFS=\" read __ KEY __ MESSAGE __ <<< "$DATA"
echo "$DATA" ## Your really need to show $DATA and not $MESSAGE right?
[[ $KEY == success ]]
exit ## Exits with code based from current $?. Not necessary if you're on the last line of the script.
内容总结
以上是互联网集市为您收集整理的如何解析shell脚本中的json响应?全部内容,希望文章能够帮你解决如何解析shell脚本中的json响应?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。