使用'jq'从JSON输出中获取数据

时间:2018-03-29 12:35:00

标签: json bash key jq

我有以下JSON输出:

string pattern = ColumnPlusLevel.Split("+")[0];

我试图只获取以下数据:

{
  "201110131738QP27N": {
    "parent": 17,
    "name": "CentralServer",
    "status": "Active",
    "count": 6
  },
  "201803271459ICV69": {
    "name": "subaccount1",
    "status": "Active",
    "count": 1
  },
  "2018032715008ZM2G": {
    "name": "subaccount2",
    "status": "Active",
    "count": 1
  },
  "201803281536PSKR4": {
    "name": "Este e um teste",
    "status": "Active"
  }
}

为了获得所需的数据,我正在尝试使用201110131738QP27N 201803271459ICV69 2018032715008ZM2G 201803281536PSKR4 命令,但到目前为止我还没有成功。

2 个答案:

答案 0 :(得分:2)

使用jq的{​​{3}}。

假设您的输入JSON存储在文件input.json中:

$ cat input.json | jq 'keys'

产生

[
  "201110131738QP27N",
  "201803271459ICV69",
  "2018032715008ZM2G",
  "201803281536PSKR4"
]

答案 1 :(得分:1)

要获取没有数组的原始输出,请使用|.[]来解包

jq --raw-output 'keys | .[]'  input.json

产生

201110131738QP27N
201803271459ICV69
2018032715008ZM2G
201803281536PSKR4

或更简单地写为jq --raw-output 'keys[]'