如何使用bash将JSON元素的值移动到子元素中

时间:2018-02-16 12:22:34

标签: json posix jq

我有一个有趣的问题。 我有这个文件:

{
  "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"
}

但是因为"数据" element也可以包含常规的JSON对象我想移动值

  

" HTTP / 1.1 403 Forbidden \ r \ n日期:星期五,2018年2月16日08:37:54   GMT \ r \ n服务器:\ r \ n连接:关闭\ r \ n \ n-CorrelationID:   Id-6298865a73b477106c98d021 0 \ r \ n内容类型:text / html \ r \ n \ r \ nAccess   否认"

进入"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找到一个解决方案,但我没有找到任何会移动它的过滤器。

请问好吗?

1 个答案:

答案 0 :(得分:2)

似乎你想要:

.data |= { message: .}