簡體   English   中英

使用 jq 從 JSON 獲取鍵和值

[英]Using jq to get key and value from JSON

這是由 curl 返回的單個(許多,美化的) JSON curl <url> | jq '.' curl <url> | jq '.'

{
 "63": {
    "state": {
      "on": false,
      "alert": "select",
      "mode": "automation",
      "reachable": true
    },
    "swupdate": {
      "state": "notupdatable",
      "lastinstall": "2019-09-15T11:19:15"
    },
    "type": "plug",
    "name": "Tree",
    "modelid": "XXX",
    "manufacturername": "XXX",
    "productname": "plug",
    "capabilities": {
      "certified": false,
      "control": {},
      "streaming": {
        "renderer": false,
        "proxy": false
      }
    },
    "config": {
      "archetype": "plug",
      "function": "functional",
      "direction": "omnidirectional"
    },
    "uniqueid": "00:0d:6f:ff:fe:da:c9:dc-01",
    "swversion": "2.0.022"
  }
}

我想將 pipe output 到jq ,以便我可以從每個 object 返回密鑰和名稱,例如“63”“樹”或“63”“樹”中的字段是否分開或如何: 已經包括了。)

我可以獲得密鑰: curl <url> | jq -r 'keys[]' curl <url> | jq -r 'keys[]'

和名稱: curl <url> \ jq -r '.[]{"name"}

但我不能讓他們都在同一條線上。

一個簡潔、高效、有些人會說優雅的解決方案:

map_values(.name)

許多替代方案之一:

with_entries( {key, value: .value.name} )

如果您希望所有內容都在一行中,則可以使用 -c 命令行選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM