【问题标题】:Use JQ Select to format a JSON data使用 JQ Select 格式化 JSON 数据
【发布时间】:2022-07-07 00:07:03
【问题描述】:

使用 JQ Select 格式化 JSON 数据 JSON数据

{
    "header": [
        "key1: value1",
        "key2: value2",
        "key3: value3"
    ]
}

需要将header数组转化为object:

{
    "header": {
        "key1": "value1",
        "key2": "value2",
        "key3": "value3"
    }
}

我尝试过使用

{header: [.header[]]}

但这会转换成数组

{
    "header": [
        "key1: value1",
        "key2: value2",
        "key3: value3"
    ]
}

【问题讨论】:

  • 一个对象不能有多个相同的键。
  • 另外,您的第二个代码块不是有效的 JSON。请修复。
  • 添加了对帖子的编辑

标签: json jq


【解决方案1】:
.header |= (map(split(": ") | { (.[0]): .[1] }) | add)

将产生:

{
  "header": {
    "key1": "value1",
    "key2": "value2",
    "key3": "value3"
  }
}

Try it online


  • 更新header.header |=
  • map() 在数组项上
  • split(): 上获取keyvalue
  • 创建一个对象,第一个索引作为键,第二个作为值{ (.[0]): .[1] }
  • add 他们一起创建一个对象

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 2021-08-07
    • 2023-04-04
    相关资源
    最近更新 更多