在Linux上用shell脚本解析json

时间:2010-10-12 23:10:36

标签: json shell

  

可能重复:
  Parsing json with sed and awk

我有一个JSON字符串,如下例所示,我想使用“uptime”命令的值作为shell脚本中的变量,我该怎么办?

  

{“serverStatus”:{“version”:“1.6.0”,“uptime”:527,“uptimeEstimate”:526,“localTime”:{“$ date”:1286923624579},“globalLock”:{“ totalTime“:526604302,”lockTime“:3499842,”ratio“:0.006646056605895331,”currentQueue“:{”total“:0,”readers“:0,”writer“:0}},”mem“:{”bits“ :64,“resident”:150,“virtual”:76114,“supported”:true,“mapped”:75950},“connections”:{“current”:1,“available”:9599},“extra_info”: {“note”:“字段因平台而异”,“heap_usage_bytes”:600592,“page_faults”:1838},“indexCounters”....

2 个答案:

答案 0 :(得分:6)

您可以使用带有json模块的编程语言,或者如果您需要shell + * nix工具解决方案,可以使用awk

$ awk -F"[,:]" '{for(i=1;i<=NF;i++){if($i~/uptime\042/){print $(i+1)} } }' file
 527

答案 1 :(得分:1)

使用ruby的版本:

cat file | ruby -e "require 'rubygems'; require 'json'; puts JSON[STDIN.read]['serverStatus']['uptime'];"