【问题标题】:Extract all fields from array with jq使用 jq 从数组中提取所有字段
【发布时间】:2021-09-20 09:36:26
【问题描述】:

我有一个名为collection.json的json文件如:

{
    "info" : {
        ...
    },
    "item" : [
        {...}, # A
        {...}, # B
        {...}  # C
    ]

}

我想要数组 item 中的所有字段,如下所示:

{...}, # A
{...}, # B
{...}  # C

我尝试过的:

jq -r '.item' 集合.json

有了这个,我还是把方括号放在开头和结尾。

jq -r '.item[]' 集合.json

这样,字段之间的逗号被删除。

【问题讨论】:

    标签: arrays json jq


    【解决方案1】:

    由于您的预期输出既不是有效的 JSON(这将是您的第一个建议 jq -r '.item' collection.json,包括逗号和数组括号)也不是元素的纯原始内容(这将是您的第二个建议 jq -r '.item[]' collection.json 删除所有周围的 JSON 语法),您必须自己构建所需的语法,这可能取决于 .item 数组元素的实际含义。

    例如,使用tostring 将它们转换为字符串,然后使用join 内置函数将它们粘合在一起:

    jq -r '.item | map(tostring) | join(",\n")' collection.json
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多