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

如何在Shell脚本中将JSON文件的键存入数组?

提取JSON顶级键到Shell数组

要把JSON文件的顶级键自动提取并存入Shell数组,最可靠的方式是用jq工具处理JSON,动态获取所有键:

基础实现(键无特殊字符时)

直接通过命令替换将jq输出存入数组,新增的顶级键会被自动识别:

# 假设JSON文件名为employees.json
keys=($(jq -r 'keys[]' employees.json))
  • jq -r 'keys[]':keys函数返回所有顶级键的数组,[]展开数组元素,-r确保输出原始字符串(不带引号)。
  • 验证数组内容:
    echo "所有键:${keys[@]}"
    # 循环打印每个键
    for key in "${keys[@]}"; do
        echo "- $key"
    done
    

健壮实现(键含空格/特殊字符时)

如果JSON键包含空格、引号等特殊字符,用while循环读入更安全,避免分割错误:

keys=()
# 用进程替换将jq输出作为循环输入
while IFS= read -r key; do
    keys+=("$key")
done < <(jq -r 'keys[]' employees.json)
  • IFS=:禁止按空格分割输入行
  • -r:保留输入行中的原始字符,不转义反斜杠

依赖安装

如果系统没有jq,先安装:

  • Debian/Ubuntu系:sudo apt update && sudo apt install jq
  • RHEL/CentOS系:sudo dnf install jq

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 05:48:22