jq使用变量解析json输入

时间:2015-10-28 17:00:53

标签: json jq

我有这个输入:

{
  "users": [
    {
      "name": "tester-01",
      "user": {
        "username": "tester01"
      }
    },
    {
      "name": "tester-02",
      "user": {
        "username": "tester02"
      }
    }
  ],
  "current-user": "tester-02"
}

使用jq(1.5),我想打印与当前用户匹配的用户名。

任何人都可以分享如何做到这一点或提示让我开始吗?

2 个答案:

答案 0 :(得分:2)

这是我的解决方案。

cat 99 | jq -r '."current-user" as $foo | .users[] | select(.name == $foo).user'
{
  "username": "tester02"
}

答案 1 :(得分:0)

选择解决方案很好。以下是使用 foreach 的替代方法。

foreach .users[] as $u (
     ."current-user"
   ; .
   ; if . == $u.name then $u.user.username else empty end
)