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

使用jq更新JSON值为0.0.x时出现无效数值字面量错误

问题解决:jq更新JSON时的语法错误

错误原因

你的jq命令存在两个核心语法问题:

  1. 赋值表达式缺少空格:jq的赋值语法要求key = value(等号两侧必须有空格),而你写的是default=0.0.1,无空格的写法会导致jq无法正确识别赋值操作。
  2. 表达式未用引号包裹:未加引号的表达式会被shell拆分解析,导致jq收到的参数不符合语法预期。

你之前尝试加引号但未解决,大概率是引号位置错误——应该把整个jq表达式用单引号或双引号包裹,而非仅给目标值加引号。

正确命令

如果希望将DeployVersion.default设置为字符串类型:

jq '.attributes.DeployVersion.default = "0.0.1"' block.json > t.tmp && mv t.tmp block.json

如果希望设置为数字类型(无需引号):

jq '.attributes.DeployVersion.default = 0.0.1' block.json > t.tmp && mv t.tmp block.json

为什么0.1能"正常运行"?

这是个巧合,jq解析器对default=0.1这种不规范写法做了错误兼容,但这并非正确语法,遇到0.0.1这类更复杂的数值时,解析逻辑就会触发错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 03:30:09