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

使用jq提取JSON的name字段触发解析错误,求问题原因及解决方法

问题分析与解决办法

1. 核心原因:jq接收的输入不是有效JSON

你遇到的parse error: Invalid numeric literal错误,本质是jq没有拿到合法的JSON内容,大概率是$OUTPUT变量里的内容不符合JSON格式规范。

2. 快速排查步骤

第一步:验证$OUTPUT的实际内容

先直接打印变量内容,确认是否为标准JSON数组:

echo "$OUTPUT"

如果输出开头不是[,或者包含HTML代码、纯文本错误提示(比如API认证失败返回的提示),那就是API返回内容有问题,导致jq无法解析。

第二步:用jq校验JSON合法性

执行以下命令,检查输入JSON是否有语法错误:

echo "$OUTPUT" | jq .

如果这个命令报错,说明JSON本身存在语法问题(比如未转义的引号、缺少逗号、括号不匹配等);如果能正常格式化输出,再执行你的提取命令就应该能正常工作。

3. 常见触发错误的场景及解决

  • API返回非JSON内容:如果是用curl请求API,确保添加了Accept: application/json请求头,强制API返回JSON格式;同时检查请求的URL、认证信息是否正确,避免API返回错误页面。
  • $OUTPUT被意外篡改:脚本中之前的操作可能给变量追加了多余字符(比如换行符、日志输出),可以用echo "$OUTPUT" | head -20查看内容开头,确认是否为正确的JSON起始格式。
  • 你的jq写法本身无问题:如果$OUTPUT是合法的JSON数组(比如[{"name":"alice"},{"name":"bob"}]),jq -r '.[] | .name'的写法是正确的,能正常提取所有name字段值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 21:25:21