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

标签 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"
}

但是因为“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\n日期:2018 年 2 月 16 日星期五 08:37:54 GMT\r\n服务器:\r\n连接:关闭\r\nX-CorrelationID:Id-6298865a73b477106c98d021 0\r\n内容类型:text/html\r\n\r\n访问被拒绝"} 结构。

我尝试使用 jq 找到解决方案,但没有找到任何可以移动它的过滤器。

请问有什么想法吗?

最佳答案

看来你想要:

.data |= { message: .}

关于json - 如何使用 bash 将 JSON 元素的值移动到子元素中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48826688/

相关文章:

python - 来自 get_buy_price() 的 API Coinbase ValueError

javascript - 从其他站点获取 JSON(P)

powershell - 格式化 docker events 的 json 输出

php - 如何上传 JSON 文件以在 Javascript 运行时创建对象而不更改服务器端脚本?

javascript - JSON 到 Javascript 层次结构(数组?)

c - "#define _GNU_SOURCE"意味着什么?

arrays - jq 输出空字符串时 bash readarray -t 数组赋值的问题

json - 为 select() 找到的元素设置一个值,但返回整个 json

c++ - setitimer 信号似乎只在 fork 之后才有效

node.js - 在 Windows 中发送 SIGUSR1 IPC