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

使用jq筛选指定device值对应的serialID时遇错误求助

解决jq筛选device=10对应serialID的错误问题

错误原因

你写的命令jq-win64 -c ".devices[].serialID | select(.devices.device == 10)"逻辑有误:

  • .devices[].serialID会直接遍历devices数组,取出每个对象的serialID字符串
  • 此时后续的select(.devices.device == 10)是在字符串上下文里执行,字符串无法用.devices.device这种对象索引方式访问,所以触发报错。

正确命令

应该先筛选出device值为10的对象,再提取它的serialID,命令如下:

jq-win64 -c ".devices[] | select(.device == 10) | .serialID" C:\test.json

执行后会输出:

"qwer1234"

如果需要去掉输出的引号,可添加-r参数(raw输出模式):

jq-win64 -cr ".devices[] | select(.device == 10) | .serialID" C:\test.json

输出:

qwer1234

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 17:09:48