bash - 使用 jq 将 json 作为数组读取
问题描述
我有这个示例test.json
文件:
{
"folder": {
"name": "Desktop",
"path": "Users/user/Desktop",
"executable": false
}
}
我正在尝试将“文件夹”中包含的对象$var
作为数组读取到变量中。所需的输出 -$var
包含以下内容:
[
{
"name": "Desktop",
"path": "Users/user/Desktop",
"executable": false
}
]
这似乎相对简单。jq '.folder' test.json
读入文件夹值,然后使用-s
标志管道输出以将其包含在数组中。这个命令执行得很好:
jq '.folder' test.json | jq -s
但是,当我尝试将结果保存到变量时,它会引发显示jq
使用语句的错误。我错过了什么?有没有不同的方法来实现这一点?
var=$(jq '.folder' test.json | jq -s)
echo $var
我还发现这可以正常工作,zsh
但会在bash
. 不确定这是否相关以及是否与不同版本的jq
解决方案
这是你所期待的吗?
$ var="$(jq "[.folder]" test.json)"
$ echo "$var"
[
{
"name": "Desktop",
"path": "Users/user/Desktop",
"executable": false
}
]
推荐阅读
- javascript - 如何获取属性的值?
- css - 添加了 4 个字体文件,但只显示了 2 个样式
- javascript - 对 indexOf 在 JS 中的工作方式感到困惑
- ios - iPhone6S 中未显示“仅添加照片”权限选项,即使在 plist 中添加“照片库添加使用说明”后也是如此
- vue.js - 如何查看 vuex 状态?
- javascript - 将网页转换为 pdf,包括谷歌地图但地图未显示
- c++ - 使用boost python编译在python代码内部调用的c ++代码时出错
- proxy - 让 mysql 客户端使用 ALL_PROXY socks5 服务器
- jquery - 我在 jquery 中使用 split 函数,但我没有得到在给定条件下如何拆分字符串?
- database - 在 Docker 上备份和迁移 MongoDB Scehma