json - 如何通过 jq 获取数字对象属性的值?
问题描述
我在文件中有一个带有数字键的 json 对象example.json
:
{
"1": "foo",
"2": "bar"
}
我想通过 key 获取它的属性jq
,我已经尝试过:
$ jq ."1" example.json
0.1
和
jq .["1"] example.json
jq: error (at example.json:4): Cannot index object with number
结果应该是
"foo"
尽管。
解决方案
命令:
jq ."1" example.json
不起作用,因为引号由 shell 解释,jq
接收的第一个参数是.1
. 上面的命令与报告相同,jq .1 example.json
并且不正确jq
。
您需要将jq
程序括在撇号中,以防止 shell 解释其中的任何字符:
jq '."1"' example.json
这样,jq
接收."1"
它的程序并愉快地解释它。
您也可以将键名放在方括号中(正如您已经尝试过的那样),但它不会增加任何改进,它只是同一个程序臃肿。它给了你更多的理由把它放在撇号中以保护它免受外壳的影响:
jq '.["1"]' example.json
推荐阅读
- django - Django制作与其他字段(对象)值相关的字段
- ios - iOS 上下文菜单 API 无法显示链接演示内容
- angular - 不可注入的服务仍然是服务还是使用不同的东西更好?
- c# - 如何在复制到另一个流期间修改/转换原始流数据?
- flutter - 使用 DI 将 BLoC 作为单例注入的效果以及在哪里关闭流?
- apache-kafka - 增量协作重新平衡导致连接器不平衡
- python - ValueError:无法将大小为 1 的数组重塑为形状 (1,43)
- templates - 如何使用来自另一个项目的文档模板
- powershell - 在 PowerShell 脚本中运行 quser.exe 在 IDE 中有效,但在作为服务运行时无效
- google-chrome-extension - 如何在当前标签中保存popup.html的状态?