json - 从 jq json 输出中排除列

标签 json jq

我想在这里使用 jq 去掉 timestamp 字段JSON 处理器。

[
  {
    "timestamp": 1448369447295,
    "group": "employees",
    "uid": "elgalu"
  },
  {
    "timestamp": 1448369447296,
    "group": "employees",
    "uid": "mike"
  },
  {
    "timestamp": 1448369786667,
    "group": "services",
    "uid": "pacts"
  }
]

白名单也适用于我,即 select uid, group

最终,我真正想要的是一个具有唯一值的列表,如下所示:

employees,elgalu
employees,mike
services,pacts

最佳答案

如果你只是想删除时间戳,你可以使用 del() 函数:

jq 'del(.[].timestamp)' input.json

但是,为了获得所需的输出,我不会使用 del() 函数。由于您知道哪些字段应该出现在输出中,您可以简单地使用 groupid 填充一个数组,然后使用 join() 函数:

jq -r '.[]|[.group,.uid]|join(",")' input.json

-r 代表原始输出jq 不会在值周围打印引号。

输出:

employees,elgalu
employees,mike
services,pacts

关于json - 从 jq json 输出中排除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33895076/

相关文章:

json - jq通过特定的key统计json中的item个数

json - 更新字段时已知 jq 错误的解决方法

json - 使用 dockerspect 中的 jq bash 命令获取网络 IP 地址

json - 从 influxdb 中检索一个(最后一个)值

javascript - 如果 JSON 值包含 "Most_Likely",如何拆分它?

java - 将两个相似的 json 字段编码到同一个 java 字段

javascript - 使用 openexchangerates API 使用 JS/JQuery 进行货币转换

javascript - Aurelia-repeat.for json

java - Spring序列化时如何忽略临时对象属性

debugging - 如何调试 jq 向我抛出的 stdin 错误?