使用'jq'[重复]从JSON输出中获取数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用'jq'[重复]从JSON输出中获取数据相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我有以下JSON输出:

{
  "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

为了获得所需的数据,我正在尝试使用jq命令,但到目前为止我还没有成功。

答案

要获得没有数组的原始输出,请使用|.[]来打开它

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

产生

201110131738QP27N
201803271459ICV69
2018032715008ZM2G
201803281536PSKR4

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

另一答案

使用keys builtin functionjq

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

$ cat input.json | jq 'keys'

生产:

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

以上是关于使用'jq'[重复]从JSON输出中获取数据的主要内容,如果未能解决你的问题,请参考以下文章

jq:json对象的输出数组[重复]

使用 jq 从 JSON 输出中提取特定字段

使用“jq”从 JSON 文件导出所需的输出(按正确顺序的字段)

jq ajax传递json对象到服务端及contentType的用法

jq调用ajax的总结

从 jq json 输出中排除列