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

如何通过单次调用提取JSON对象的key和value并存储到变量

单次调用jq提取JSON字段并存入变量

这里提供几种适配不同场景的实现方式,均只需一次jq调用即可完成:

方法1:基础换行分隔读取

适合字段内容无空格或特殊字符的简单场景:

read -r key value <<< "$(jq -r '.key, .value' input.json)"

执行后,$key 会存储hello,$value存储world。jq通过, 分隔两个字段,依次输出两个值(每行一个),read -r会按换行/空格将值分别存入对应变量。

方法2:Null字符分隔(兼容含特殊字符的字段)

如果字段内容包含空格、换行或引号等特殊字符,用null字符分隔能避免赋值错误:

read -r -d '' key value <<< "$(jq -r '.key + "\u0000" + .value' input.json)"

-d ''参数让read以null字符作为值的分隔符,彻底规避特殊字符带来的解析问题。

方法3:Shell安全赋值(最推荐)

利用jq的@sh过滤器自动转义Shell特殊字符,结合eval直接完成变量赋值,适配所有复杂场景:

eval "$(jq -r '@sh "key=\(.key) value=\(.value)"' input.json)"

@sh会将字段内容转义为符合Shell语法的字符串,确保即使字段包含引号、空格等特殊字符,也能被正确赋值到变量中。

验证变量:执行echo $key和echo $value,会分别输出hello和world。

内容的提问来源于stack exchange,提问作者unbox-us

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:19:52