簡體   English   中英

如何使用jq從JSON提取變量鍵及其值?

[英]How to use jq to extract variable keys and their values from JSON?

如果我有一個具有可變鍵名的JSON文件,例如:

{   
    "john": {"age": 40, "nickname": "jo"},
    "mary": {"age": 50, "nickname": "mo"}
}

如何使用jq提取具有某些值的鍵?

示例:提取名稱及其年齡:

"john": 40
"mary": 50

在您提到的特定情況下,可以使用以下過濾器:

to_entries[] | "\"\(.key)\": \(.value.age)"

在輸入中使用-r命令行選項(例如jq -rf program.jq)會產生:

"john": 40
"mary": 50

也可以看看:

使用jq遞歸提取對象值和父鍵名稱

嘗試這個:

to_entries[] | {(.key): .value.age}

輸出:

{
  "john": 40
}
{
  "mary": 50
}

首先將對象轉換為鍵/值對的數組; 那么您可以對其進行迭代並一並訪問鍵和關聯的值。

$ jq 'to_entries' tmp.json
[
  {
    "key": "john",
    "value": {
      "age": 40,
      "nickname": "jo"
    }
  },
  {
    "key": "mary",
    "value": {
      "age": 50,
      "nickname": "mo"
    }
  }
]
$ jq 'to_entries[] | "\(.key): \(.value.age)"' tmp.json
"john: 40"
"mary: 50"

暫無
暫無

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

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