jq是一个轻量级且灵活的命令行JSON处理器,用于解析、过滤、转换和操作JSON数据。它使用类似管道的方式处理JSON数据流,并支持复杂的查询和转换操作。
要在现有的JSON中添加相同的数组元素,可以使用jq的数组操作功能。以下是几种常见场景的解决方案:
# 原始JSON
echo '{"array": [1, 2, 3]}' | jq '.array += [4, 4, 4]'
输出:
{
"array": [1, 2, 3, 4, 4, 4]
}
# 原始JSON
echo '{"arr1": [1], "arr2": [2]}' | jq '.[] += [3, 3]'
输出:
{
"arr1": [1, 3, 3],
"arr2": [2, 3, 3]
}
# 添加5个"new"元素
echo '{"items": ["a", "b"]}' | jq --arg count 5 '.items += [range(0; $count|tonumber) | "new"]'
输出:
{
"items": ["a", "b", "new", "new", "new", "new", "new"]
}
# 只有当数组长度小于5时才添加元素
echo '{"data": [1, 2, 3]}' | jq 'if (.data|length) < 5 then .data += [4,4,4,4] else . end'
输出:
{
"data": [1, 2, 3, 4, 4, 4, 4]
}
# 创建包含10个0的新数组
echo '{}' | jq '.newArray = [range(0;10) | 0]'
输出:
{
"newArray": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}
jq的这些数组操作功能可以广泛应用于配置管理、数据处理和API响应修改等场景。
没有搜到相关的文章