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

如何遍历指定数组,从JSON对象中提取对应title与score值

解决方案

要实现你的两个需求,推荐使用jq工具来解析JSON数据(这是Shell环境下处理JSON的标准工具,大部分Linux发行版和macOS都可以通过包管理器安装)。以下是具体实现:

1. 输出所有title和score的值

通过jq一次性遍历JSON对象的所有属性,提取并格式化每个条目的标题和分数:

json_input='{
    "performance": {
      "title": "Performance",
      "score": 0.95
    },
    "accessibility": {
      "title": "Accessibility",
      "score": 1
    },
    "bestPractices": {
      "title": "Best Practices",
      "score": 0.92
    },
    "seo": {
      "title": "SEO",
      "score": 0.83
    },
    "progressiveWebApp": {
      "title": "PWA",
      "score": 0.33
  }
}'

# 输出所有指标的title和score
echo "所有指标的title和score:"
jq '.[] | "\(.title): \(.score)"' <<< "$json_input"

代码说明:.[]遍历JSON对象的所有子属性值,"\(.title): \(.score)"将标题和分数拼接成字符串输出。

2. 遍历metrics数组提取对应score

修改循环逻辑,通过jq的参数传递功能,精准定位每个metric对应的分数:

metrics=("accessibility" "bestPractices" "performance" "progressiveWebApp" "seo")

echo -e "\n按metrics数组提取对应score:"
for metric in "${metrics[@]}"; do
  score=$(jq --arg metric "$metric" '.[$metric].score' <<< "$json_input")
  echo "${metric}: ${score}"
done

代码说明:--arg metric "$metric"将Shell变量传递给jq,.[$metric].score根据变量值定位到对应指标的分数,最后赋值给Shell变量并输出。

完整整合脚本

json_input='{
    "performance": {
      "title": "Performance",
      "score": 0.95
    },
    "accessibility": {
      "title": "Accessibility",
      "score": 1
    },
    "bestPractices": {
      "title": "Best Practices",
      "score": 0.92
    },
    "seo": {
      "title": "SEO",
      "score": 0.83
    },
    "progressiveWebApp": {
      "title": "PWA",
      "score": 0.33
  }
}'

metrics=("accessibility" "bestPractices" "performance" "progressiveWebApp" "seo")

# 输出所有title和score
echo "所有指标的title和score:"
jq '.[] | "\(.title): \(.score)"' <<< "$json_input"

# 遍历metrics数组提取对应score
echo -e "\n按metrics数组提取对应score:"
for metric in "${metrics[@]}"; do
  score=$(jq --arg metric "$metric" '.[$metric].score' <<< "$json_input")
  echo "${metric}: ${score}"
done

运行输出示例

所有指标的title和score:
"Performance: 0.95"
"Accessibility: 1"
"Best Practices: 0.92"
"SEO: 0.83"
"PWA: 0.33"

按metrics数组提取对应score:
accessibility: 1
bestPractices: 0.92
performance: 0.95
progressiveWebApp: 0.33
seo: 0.83

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 09:47:31