【发布时间】:2016-12-05 23:46:37
【问题描述】:
假设我有以下 JSON,存储在我的变量 jsonVariable 中。
{
"id": 1,
"details": {
"username": "jamesbrown",
"name": "James Brown"
}
}
我用 jq 解析这个 JSON:
echo $jsonVariable | jq '.details.name | select(.name == "James Brown")'
这会给我输出
詹姆斯·布朗
但是如果我也想得到这个人的 id 怎么办?现在,我知道这是一个粗略而简单的例子——我目前正在使用的程序有 5 或 6 层深,除了 select 之外还有许多不同的 JQ 函数。在执行各种过滤方法后,当我已经 5 或 6 层深时,我需要一种方法来选择父字段。
有人可以帮忙吗?有没有办法“逆向”,回到父母那里? (不确定我是否有道理!)
【问题讨论】:
-
好像你想要
.id | select(.name == "James Brown")你试过了吗? -
抱歉,没有正确解释。我希望两者都有
-
你可以像
. | select(.details | .name == ("James Brown", "Elon Musk")) | .id那样做