我很想根據散列中的鍵選擇物件,但我想要原始物件格式。我怎樣才能做到這一點?
原版的
{
"google.com": {
"http": {
"dest_url": "http://stackoverflow.com"
},
"https": {
"dest_url": "http://github.com"
}
},
"aaa.com": {
"https": {
"dest_url": "https://github.com"
}
},
"bbb.com": {
"https": {
"dest_url": "https://microsoft.com"
}
},
"ccc.com": {
"https": {
"dest_url": "https://.com"
}
}
}
應該
{
"google.com": {
"http": {
"dest_url": "http://stackoverflow.com"
},
"https": {
"dest_url": "http://github.com"
}
},
"bbb.com": {
"https": {
"dest_url": "https://microsoft.com"
}
}
}
我試過了,to_entries[] | select (.key == "google.com" or .key == "bbb.com") | [.key, .value]但結果是這樣的。我確定[.key, .value]部分是錯誤的,但我堅持如何解決這個問題。
[
"google.com",
{
"http": {
"dest_url": "http://stackoverflow.com"
},
"https": {
"dest_url": "http://github.com"
}
}
]
[
"bbb.com",
{
"https": {
"dest_url": "https://microsoft.com"
}
}
]
uj5u.com熱心網友回復:
Use with_entries(…),它是 的快捷方式to_entries | map(…) | from_entries,它反過來將物件分解為鍵/值表示的陣列to_entries,修改該陣列中的每個專案map,并將其轉換回原始結構from_entries。
jq 'with_entries(select(.key == "google.com" or .key == "bbb.com"))'
{
"google.com": {
"http": {
"dest_url": "http://stackoverflow.com"
},
"https": {
"dest_url": "http://github.com"
}
},
"bbb.com": {
"https": {
"dest_url": "https://microsoft.com"
}
}
}
演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/437365.html
下一篇:JSON資料和PHP處理
