将数组填充到一定数量的值

时间:2017-10-15 19:46:26

标签: arrays json jq

我想知道这是否可行。 有一个像这样的对象:

  

data.json:

[
 {"DATE":"September","VALUE":[5,17,8,9]}
]

如您所见,数组“VALUE”目前包含4个数字。 (这可能会有所不同)。但是,我希望它始终包含 - 让我们说10 - 数字。

因此,数组应填充零。

结果应如下所示:

  

data.json:

[
 {"DATE":"September","VALUE":[5,17,8,9,0,0,0,0,0,0]}
]

当然,初始数组可能已包含10个值的预期计数。然后,什么都不应该改变。

1 个答案:

答案 0 :(得分:3)

如果数组最初太长,可以很容易地修改以截断数组,如果需要的话:

def expand(n; value): . + [range(length;n) | value];

map(.VALUE |= expand(10;0))

一衬垫

jq 'map(.VALUE|=.+[range(length;10)|0])' data.json | sponge data.json