首页 > 解决方案 > 使用 jq 从 JSON 中提取值

问题描述

我有一个如下所示的 JSON 对象:

{
    "Accounts": [
        {
            "Id": "1",
            "Name": "Joe",
            "Zip": "11111"
        },
        {
            "Id": "2",
            "Name": "Jack",
            "Zip": "22222"
        }
    ]   
}

我正在尝试编写一个jq查询,它给了我这个:

[
    {
        "Id": "1",
        "Name": "Joe"
    },
    {
        "Id": "2",
        "Name": "Jack"
    }   
]

我怎样才能做到这一点?谢谢。

标签: jsonjq

解决方案


jq '.Accounts | map({ Id, Name })'

会产生

[
  {
    "Id": "1",
    "Name": "Joe"
  },
  {
    "Id": "2",
    "Name": "Jack"
  }
]

因为您可以使用此演示在线尝试。


  • .Accounts选择Accounts密钥
  • map()将为每个对象应用以下内容[文档]
  • Id使用和Name键创建对象[docs]

推荐阅读