You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Bash Shell+JQ提取adminLock=1的domains生成关联数组

使用Bash和jq处理JSON生成关联数组

完整处理代码

#!/bin/bash

# 读取JSON数据源(可替换为文件读取或API请求)
json_data=$(cat domain_data.json)

# 通过jq筛选目标条目并生成关联数组元素
array_items=$(echo "$json_data" | jq -r '.[] | select(.adminLock == 1) | "\"\(.domainsID)\"=\"\(.domains)\""')

# 构建Bash关联数组
eval "now_array=($array_items)"

# (可选)验证数组内容
for id in "${!now_array[@]}"; do
    echo "DomainsID: $id, Domain: ${now_array[$id]}"
done

关键逻辑说明

  • jq过滤规则:
    • .[] 遍历JSON数组中的每一个条目
    • select(.adminLock == 1) 筛选出adminLock字段值为1的条目
    • "\"\(.domainsID)\"=\"\(.domains)\"" 将符合条件的条目格式化为Bash关联数组支持的"键"="值"结构
  • 关联数组构建:使用eval将jq输出的元素集合拼接成合法的Bash关联数组定义语句
  • 数据源替换:如果JSON来自API接口,可将cat domain_data.json替换为curl -s "API接口地址"

内容的提问来源于stack exchange,提问作者study

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 21:05:25