json - 在 shell 脚本中读取 JSON 数据

在 shell 中我有一个要求,我必须读取以下格式的 JSON 响应:

 { "Messages": [ { "Body": "172.16.1.42|/home/480/1234/5-12-2013/1234.toSort", "ReceiptHandle": "uUk89DYFzt1VAHtMW2iz0VSiDcGHY+H6WtTgcTSgBiFbpFUg5lythf+wQdWluzCoBziie8BiS2GFQVoRjQQfOx3R5jUASxDz7SmoCI5bNPJkWqU8ola+OYBIYNuCP1fYweKl1BOFUF+o2g7xLSIEkrdvLDAhYvHzfPb4QNgOSuN1JGG1GcZehvW3Q/9jq3vjYVIFz3Ho7blCUuWYhGFrpsBn5HWoRYE5VF5Bxc/zO6dPT0n4wRAd3hUEqF3WWeTMlWyTJp1KoMyX7Z8IXH4hKURGjdBQ0PwlSDF2cBYkBUA=", "MD5OfBody": "53e90dc3fa8afa3452c671080569642e", "MessageId": "e93e9238-f9f8-4bf4-bf5b-9a0cae8a0ebc" } ] }

这里我只关心“Body”属性值。我做了一些不成功的尝试,例如:

 jsawk -a 'return this.Body' 

 awk -v k="Body" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]} 

但这还不够。谁能帮我解决这个问题?

最佳答案

命令行有解析json的jq:

 jq '.Body'

访问 jq:https://stedolan.github.io/jq/

https://stackoverflow.com/questions/20488315/

相关文章:

c# - 为什么 DateTime.MinValue 不能在 UTC 之前的时区中序列化?

c# - 复杂类型在 ApiController 参数中为空

java - 在不知道 JSON 格式的情况下用 Java 解析 JSON

database - Fabric.js - 如何使用自定义属性在服务器上保存 Canvas

c# - asp.net asmx Web 服务返回 xml 而不是 json

json - 将 JSON 序列化为查询字符串的标准化方法?

javascript - JSON 中空与空的约定是什么?

json - 将逻辑表示为 JSON 中的数据

java - Gson 是否必须使用默认的无参数构造函数?

java - JSON - 遍历 JSONArray