[英]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.