JSON文件上的JQ查询

时间:2019-02-19 10:28:20

标签: bash jq

我在JSON文件中有以下代码。

{
  "comment": {
    "vm-updates": [],
    "site-ops-updates": [
      {
        "comment": {
          "message": "You can start maintenance on this resource"
        },
        "hw-name": "Machine has got missing disks. "
      }
    ]
  },
  "object_name": "4QXH862",
  "has_problems": "yes",
  "tags": ""
}

我想使用jq从此JSON文件中分离出“硬件名称”。我已经尝试了以下组合,但是没有用。

cat jsonfile | jq -r '.comment[].hw-name'
cat json_file.json | jq -r '.comment[].site-ops-updates[].hw-name'

StackOverflow的帮助!!

1 个答案:

答案 0 :(得分:1)

应该是:

▶ cat jsonfile | jq -r '.comment."site-ops-updates"[]."hw-name"' 
Machine has got missing disks. 

或更妙的是:

▶ jq -r '.comment."site-ops-updates"[]."hw-name"' jsonfile    
Machine has got missing disks. 

来自docs

  

如果键包含特殊字符,则需要用双引号将其括起来,例如:."foo$",否则为.["foo$"]