【问题标题】:Way to convert json output jqjson输出jq的转换方式
【发布时间】:2021-10-18 17:07:52
【问题描述】:

我有以下 json 输出:

[
  {
    "serviceid": "service1",
    "endpoints" : { 
      "endpoint1": [
        "example1",
        "example2",
        "example3",
        "example4"
      ],
      "endpoint2": [
        "example3",
        "example4",
        "example5",
        "example6"
      ]
    },
    "version": "1.0"
  },
  {
    "serviceid": "service2",
    "endpoints" : {
      "endpoint3": [
        "example7",
        "example8",
        "example9",
        "example10"
      ]
    },
    "version": "2.0"
  }
]

所以我需要删除端点 1、端点 2 和端点 3,并将它们的子节点保存为数组。 这是所需的输出:

[
    {
      "serviceid": "service1",
      "endpoints" : [
          "example1",
          "example2",
          "example3",
          "example4"
          "example3",
          "example4",
          "example5",
          "example6"
      ],
      "version": "1.0"
      },
      "serviceid": "service2",
      "endpoints" : [
          "example7",
          "example8",
          "example9",
          "example10"
      ],
      "version": "2.0"
    }
]

我没有任何想法去面对它,请你帮帮我吗? 提前致谢。

【问题讨论】:

  • 这不是有效的 JSON。

标签: jq


【解决方案1】:

一旦您修正了输入中的所有拼写错误(缺少几个逗号和一些花括号),这应该可以工作:

jq 'map(.endpoints |= [.[][]])'

Demo

【讨论】:

  • 谢谢,效果很好
猜你喜欢
  • 1970-01-01
  • 2019-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多