这里是一个示例代码,演示了如何使用jq循环遍历并根据条件分配键:
#!/bin/bash
# JSON 数据
data='[{"name": "Alice", "age": 25}, {"name": "Bob", "age": 30}, {"name": "Charlie", "age": 35}]'
# 使用 jq 循环遍历 JSON 数组
jq -c '.[]' <<< "$data" | while read -r obj; do
name=$(jq -r '.name' <<< "$obj")
age=$(jq -r '.age' <<< "$obj")
# 根据条件分配键
if [[ $age -lt 30 ]]; then
key="young"
else
key="old"
fi
# 输出分配后的键值对
echo "{\"$key\": $obj}"
done
这段代码将遍历JSON数组中的每个对象,并根据条件(年龄是否小于30)为每个对象分配一个键。如果年龄小于30,则键为"young",否则为"old"。然后,将分配后的键值对输出到标准输出。