Linux下如何使用jq解析json数据

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-1 05:06   11   0

jq是Linux下一个解析json格式数据的实用工具,可以将在linux下一团糟的json数据按格式输出,还可以直接选中关键字打印出它的值。


首先要进行安装

1.命令行安装

  1. sudo apt-get install jq
如果你也跟我一样提示找不到jq包,那么可以用第二种方式。


2.网址下载

https://stedolan.github.io/jq/download/

根据系统选择,这里博主使用的是ubuntu,点击ubuntu。


选择版本,不清楚版本的可以在terminal输入uname指令查看:

  1. uname -a

随意选择亚洲地区的下载链接,保存,直接安装,完成。


然后是使用,这里只给出最实用的3个语法,详细的可以用man查看:

  1. man jq


以detect api返回的json数据为例,数据储存在文件face中:

  1. {"image_id": "6kox5v0GjhI9f+MWEc3wIA==", "request_id": "1493524184,9bbee040-d1f0-4681-be0a-96dbf9a4d018", "time_used": 292, "faces": [{"attributes": {"gender": {"value": "Female"}, "age": {"value": 26}}, "face_rectangle": {"width": 113, "top": 125, "left": 198, "height": 113}, "face_token": "ff5bda3d50e933584a28722afd8f9b2e"}]}

1.格式化输出json

  1. jq . face

得到:

  1. {
  2. "faces": [
  3. {
  4. "face_token": "ff5bda3d50e933584a28722afd8f9b2e",
  5. "face_rectangle": {
  6. "height": 113,
  7. "left": 198,
  8. "top": 125,
  9. "width": 113
  10. },
  11. "attributes": {
  12. "age": {
  13. "value": 26
  14. },
  15. "gender": {
  16. "value": "Female"
  17. }
  18. }
  19. }
  20. ],
  21. "time_used": 292,
  22. "request_id": "1493524184,9bbee040-d1f0-4681-be0a-96dbf9a4d018",
  23. "image_id": "6kox5v0GjhI9f+MWEc3wIA=="
  24. }

2.查看关键值

  1. jq 'keys' face

得到:

  1. [
  2. "faces",
  3. "image_id",
  4. "request_id",
  5. "time_used"
  6. ]

3.提取关键值

  1. jq '.time_used' face
得到:

  1. 292


对于嵌套比较多层的json,在linux下使用awk进行解析也是一个不错的选择:linux下使用awk解析json


转自:http://blog.csdn.net/IOT_Flower/article/details/70999894

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP