【发布时间】:2013-12-27 14:33:34
【问题描述】:
在 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]}
但这还不够。谁能帮我解决这个问题?
【问题讨论】:
-
不,在这种情况下,这不是选项。但出于知识目的,如果您不介意,请发表您的评论。
-
用面向shell的工具解析json格式一般不是个好主意,更多思路见此链接:stackoverflow.com/questions/19511851/…
-
可以选择外部工具吗? kmkeen.com/jshon