key - jq中包含'@'和'-'的转义字段名称?
问题描述
输入 JSON:
{
"abc": {
"@def-ghi": "value1",
"xyz": "value2"
}
}
我正在尝试获取 field 的价值@def-ghi
。
➜ $?=0 ➤ echo '{"abc": {"@def-ghi": "value1", "xyz": "value2"}}' | jq '.abc.xyz'
"value2"
➜ $?=0 ➤ echo '{"abc": {"@def-ghi": "value1", "xyz": "value2"}}' | jq '.abc.@def-ghi'
jq: error: syntax error, unexpected '-', expecting QQSTRING_START (Unix shell quoting issues?) at <top-level>, line 1:
.abc.@def-ghi
jq: 1 compile error
➜ $?=3 ➤
如何正确转义字段名称?
解决方案
您只需要引用密钥:
$ echo '...' | jq '.abc."@def-ghi"'
"value1"
推荐阅读
- android - 从相机预览中截取屏幕截图一直失败
- facebook - 如何从另一个帐户 Instagram 检索视频观看次数
- c - Socket:sendto函数根据ip头长度值改变发送的数据
- vba - 重新分配时范围被删除
- python - NumPy, .reshape()
- c++ - 为什么它在相同的计算中在 fortran 与 c++ 中显示不同的结果
- angular - 在我的子组件中,我想获取特定的 ID 详细信息?
- flutter - Flutter:在 BottomSheet 中取消停靠 FAB
- html - 基于偏好颜色方案媒体查询加载 CSS
- string - Powershell - 从 FQDN 中剪切域名