【问题标题】:Extracting key from a json从json中提取密钥
【发布时间】:2016-11-26 10:57:55
【问题描述】:

鉴于此 JSON sn-p,我试图找出使用 jq 提取与特定“instance-id”相对应的键的名称。

我正在尝试这个:

jq '.machines | keys as $x | if .[]."instance-id"=="wdc7ae" then <some-code-to-get-the-key>  else empty end'

其中 $x 包含所有机器编号。而“wdc7ae”是具体的“instance-id”值

{
  "model": {
    "name": "maas2",
    "controller": "ctr-xenial",
    "cloud": "maas",
    "version": "2.0.1"
  },
  "machines": {
    "1": {
      "dns-name": "10.4.0.181",
      "instance-id": "wdc7ae",
      "series": "xenial"
    },
    "2": {
      "dns-name": "10.4.0.182",
      "instance-id": "7mx74d",
      "series": "xenial"
    },
    "3": {
      "dns-name": "10.4.0.183",
      "instance-id": "rgn3ca",
      "series": "xenial"
    },
    "4": {
      "dns-name": "10.4.0.184",
      "instance-id": "kmy4bh",
      "series": "xenial"
    },
    "5": {
      "dns-name": "10.4.0.185",
      "instance-id": "eb38c7",
      "series": "xenial"
    }
  }
}

非常感谢任何帮助。

【问题讨论】:

    标签: json bash key jq


    【解决方案1】:

    感谢#jq irc 频道的“Goldfish”。这是“金鱼”分享的命令,对我来说就像一个魅力:

    .machines | to_entries[] | select(.value."instance-id" == "wdc7ae").key
    

    【讨论】:

      猜你喜欢
      • 2020-11-28
      • 2020-06-22
      • 2019-03-22
      • 2017-01-29
      • 1970-01-01
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多