如何使用 bash 将 JSON 元素的值移动到子元素中
How to move value of JSON element into subelement using bash
我有一个有趣的问题。
我有这个文件:
{
"correlationId": "6298865a73b477106c98d021",
"leg": 0,
"tag": "sent",
"offset": 322858,
"len": 178,
"prev": {
"page": {
"file": 10352,
"page": 2
},
"record": 911
},
"data": "HTTP/1.1 403 Forbidden\r\nDate: Fri, 16 Feb 2018 08:37:54 GMT\r\nServer: \r\nConnection: close\r\nX-CorrelationID: Id-6298865a73b477106c98d021 0\r\nContent-Type: text/html\r\n\r\nAccess Denied"
}
但是因为 "data" 元素也可以包含常规 JSON 对象,所以我想移动值
"HTTP/1.1 403 Forbidden\r\nDate: Fri, 16 Feb 2018 08:37:54
GMT\r\nServer: \r\nConnection: close\r\nX-CorrelationID:
Id-6298865a73b477106c98d021 0\r\nContent-Type: text/html\r\n\r\nAccess
Denied"
进入"data": { "message": "HTTP/1.1 403 Forbidden\r\nDate: Fri, 16 Feb 2018 08:37:54 GMT\r\nServer: \r\nConnection: close\r\nX-CorrelationID: Id-6298865a73b477106c98d021 0\r\nContent-Type: text/html\r\n\r\nAccess Denied"}
结构。
我试图用 jq 找到一个解决方案,但我没有找到任何可以移动它的过滤器。
有什么想法吗?
看来你想要:
.data |= { message: .}
我有一个有趣的问题。 我有这个文件:
{
"correlationId": "6298865a73b477106c98d021",
"leg": 0,
"tag": "sent",
"offset": 322858,
"len": 178,
"prev": {
"page": {
"file": 10352,
"page": 2
},
"record": 911
},
"data": "HTTP/1.1 403 Forbidden\r\nDate: Fri, 16 Feb 2018 08:37:54 GMT\r\nServer: \r\nConnection: close\r\nX-CorrelationID: Id-6298865a73b477106c98d021 0\r\nContent-Type: text/html\r\n\r\nAccess Denied"
}
但是因为 "data" 元素也可以包含常规 JSON 对象,所以我想移动值
"HTTP/1.1 403 Forbidden\r\nDate: Fri, 16 Feb 2018 08:37:54 GMT\r\nServer: \r\nConnection: close\r\nX-CorrelationID: Id-6298865a73b477106c98d021 0\r\nContent-Type: text/html\r\n\r\nAccess Denied"
进入"data": { "message": "HTTP/1.1 403 Forbidden\r\nDate: Fri, 16 Feb 2018 08:37:54 GMT\r\nServer: \r\nConnection: close\r\nX-CorrelationID: Id-6298865a73b477106c98d021 0\r\nContent-Type: text/html\r\n\r\nAccess Denied"}
结构。
我试图用 jq 找到一个解决方案,但我没有找到任何可以移动它的过滤器。
有什么想法吗?
看来你想要:
.data |= { message: .}