【发布时间】:2016-12-19 12:10:24
【问题描述】:
2 个问题:
1) 我想保持 json 原样,但将时间戳更改为人类可读的日期,例如“2016-12-19T09:21:35Z”
{
"Action": "ALLOW",
"Timestamp": 1482139256.274,
"Request": {
"Country": "US",
"URI": "/version/moot/beta.json",
"Headers": [
{
"Name": "Host",
"Value": "static.tiza.com"
},
{
"Name": "User-Agent",
"Value": "Faraday v0.9.2"
},
{
"Name": "Accept-Encoding",
"Value": "gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
},
{
"Name": "Accept",
"Value": "*/*"
},
{
"Name": "X-Newrelic-Id",
"Value": "Vgcs5gbFU123dFBWGwIdAVFdrXBwc="
},
{
"Name": "X-Newrelic-Transaction",
"Value": "PxQDQVlzZVUd3NKQcrEwWwU"
}
],
"ClientIP": "107.22.17.51",
"Method": "GET",
"HTTPVersion": "HTTP/1.1"
},
"Weight": 1
}
我知道我可以使用 'todate' jq 功能做到这一点,但我丢失了所有其他数据
sh# cat temp.json | jq -r '.SampledRequests[].Timestamp | todate'
2016-12-19T09:21:44Z
--------- 更新了--------
第二个问题: 2)如何将.Headers[]的内容从“Request{}”层级下的数组中取出来。
来自:
{
"TimeWindow": {
"EndTime": 1482156660,
"StartTime": 1482156420
},
"SampledRequests": [
{
"Action": "ALLOW",
"Timestamp": 1482139256.274,
"Request": {
"Country": "US",
"URI": "/version/moot/beta.json",
"Headers": [
{
"Name": "Host",
"Value": "static.tiza.com"
},
{
"Name": "X-Newrelic-Transaction",
"Value": "PxQDQVlzZVUd3NKQcrEwWwU"
}
],
"ClientIP": "107.22.17.51",
"Method": "GET",
"HTTPVersion": "HTTP/1.1"
},
"Weight": 1
}
],
"PopulationSize": 89
}
收件人:
{
"TimeWindow.EndTime": 1482156660,
"TimeWindow.StartTime": 1482156420,
"Action": "ALLOW",
"Timestamp": 1482139256.274,
"Request.Country": "US",
"Request.URI": "/version/moot/beta.json",
"Headers.Host": "static.tiza.com",
"Headers.X-Newrelic-Transaction": "PxQDQVlzZVUd3NKQcrEwWwU",
"ClientIP": "107.22.17.51",
"Method": "GET",
"HTTPVersion": "HTTP/1.1",
"Weight": 1,
"PopulationSize": 89
}
非常感谢,
莫舍
【问题讨论】:
-
对于谁,我用这个:[leaf_paths as $path | {“关键”:$路径|地图(tostring) | join("."), "value": getpath($path)}] | from_entries
标签: json bash parsing aws-cli jq