【问题标题】:Generate single JSON array from several input objects using jq使用 jq 从多个输入对象生成单个 JSON 数组
【发布时间】:2017-07-07 09:04:10
【问题描述】:

我确实有几个类似的 JSON 对象(例如在文件中):

file_1.json: {"myArray":[{a},{b}]}
...
file_n.json: {"myArray":[{n},{m}]}

我想使用 jq 和 Linux 或 Windows 命令行工具将所有这些文件转换为以下格式的输出:

result_file.json: [{a},{b},...,{n},{m}]

所以,我只想要一个数组,其中包含可以在来自不同输入的“myArray”数组中找到的所有对象。

目前我使用这个命令,它分隔对象,但不创建包含它们的数组:

type file_1.json file_n.json | jq ".result[]" > result_file.json

(在 Linux 上用 cat 替换类型)

我怎样才能得到正确的格式?

【问题讨论】:

    标签: arrays json jq


    【解决方案1】:

    您可以“啜饮”您的输入:

    -s 将所有输入读入(slurp)到一个数组中;对其应用过滤器;

    (男人 jq)

    这样:

    1.json

    {"myArray":[1,2,3]}
    

    2.json

    {"myArray":[3,4,5]}
    

    %jq -s '[.[].myArray[]]' 1.json 2.json

    [
      1,
      2,
      3,
      3,
      4,
      5
    ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 2017-04-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多