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

终端执行curl POST请求时jq报错data/0 is not defined问题咨询

问题原因
  • 第一处错误:jq的过滤器表达式没有用单引号包裹
    直接执行jq data.attributes.bearerToken时,Shell会解析表达式中的.符号,在部分环境下会被识别为路径分隔符,导致表达式被错误转译为data/attributes/bearerToken,jq无法识别该语法,因此抛出编译错误。正确写法需要用单引号将过滤器包裹,避免Shell提前解析表达式内容。
  • 第二处错误:curl的进度输出污染了传入jq的数据流
    你执行命令的返回中混有curl默认输出的下载进度信息,这部分非JSON内容会导致jq后续解析JSON失败,需要给curl增加-s(静默模式)参数关闭进度输出。
修正后的完整命令
curl -s --request POST -H 'Content-type: application/vnd.myapp.api+json' \
    -H 'Authorization: Bearer $77777uTlmlHRfyoUj.$3333DZpH0XB0ER6W3Y.22227WYZZ6xSTQd/J5AvOqA1' \
    -d '{"data":{"id":"mytoken","type":"jwtToken"}}' \
    https://app.com/api/entities/users/apiTokens | \
      jq '.data.attributes.bearerToken'

注:如果执行修正后的命令仍然返回null,说明接口返回的JSON结构和你预期不符,可以先去掉管道后的jq命令直接打印curl返回结果,确认结构后再调整jq过滤器即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:54:07