您的位置:首页 > 运维架构 > Linux

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

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

首先要进行安装:

1.命令行安装

[plain] view
plain copy

 print?

sudo apt-get install jq  

如果你也跟我一样提示找不到jq包,那么可以用第二种方式。

2.网址下载
https://stedolan.github.io/jq/download/


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



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

[plain] view
plain copy

 print?

uname -a  





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

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

[plain] view
plain copy

 print?

man jq  

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

[plain] view
plain copy

 print?

{"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

[plain] view
plain copy

 print?

jq . face  

得到:

[plain] view
plain copy

 print?

{  

  "faces": [  

    {  

      "face_token": "ff5bda3d50e933584a28722afd8f9b2e",  

      "face_rectangle": {  

        "height": 113,  

        "left": 198,  

        "top": 125,  

        "width": 113  

      },  

      "attributes": {  

        "age": {  

          "value": 26  

        },  

        "gender": {  

          "value": "Female"  

        }  

      }  

    }  

  ],  

  "time_used": 292,  

  "request_id": "1493524184,9bbee040-d1f0-4681-be0a-96dbf9a4d018",  

  "image_id": "6kox5v0GjhI9f+MWEc3wIA=="  

}  

2.查看关键值

[plain] view
plain copy

 print?

jq 'keys' face  

得到:

[plain] view
plain copy

 print?

[  

  "faces",  

  "image_id",  

  "request_id",  

  "time_used"  

]  

3.提取关键值

[plain] view
plain copy

 print?

jq '.time_used' face  

得到:

[plain] view
plain copy

 print?

292  

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

转自:http://blog.csdn.net/IOT_Flower/article/details/70999894
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: