json - 如何使用 jq 流过滤 JSON
问题描述
我有一个非常大的 JSON 文件,示例数据如下所示:
{"userActivities":{"L3ATRosRdbDgSmX75Z":{"deviceId":"60ee32c2fae8dcf0","dow":"Friday","localDate":"2018-01-19"},"L3ATSFGrpAYRkIIKqrh":{"deviceId":"60ee32c2fae8dcf0","dow":"Friday","localDate":"2018-01-20"}}}
我需要在 jq 流中的“localDate”字段上放置一个过滤器,以便输出看起来像以下 JSON:
{"L3ATSFGrpAYRkIIKqrh":{"deviceId":"60ee32c2fae8dcf0","dow":"Friday","localDate":"2018-01-19"}}
非常感谢任何帮助/指导!
解决方案
在根据值进行选择时保留键值对的最简单方法是使用with_entries
:
jq '.userActivities
| with_entries(select(.value.localDate=="2018-01-20"))' input.json
输出
{
"L3ATSFGrpAYRkIIKqrh": {
"deviceId": "60ee32c2fae8dcf0",
"dow": "Friday",
"localDate": "2018-01-20"
}
}
推荐阅读
- sql - 如何从表中获取最新的最后 2 条插入记录
- c# - 如何使用 xUnit 在 .Net Core 中模拟配置文件
- ecmascript-6 - sapui5 业力覆盖不支持 es6 语法
- python - 根据子字符串列表过滤 Pandas 数据框
- java - 如何使用 Android.mk 在 AOSP Java 和 Robolectric 中获得代码覆盖率
- java - 对象 [id=XYZ] 不是已知的实体类型
- linux - 将 JAVA_HOME 输出到变量中
- laravel - 如何在 laravel 本地化的路由和控制器中发送 id
- python - 如何有效地求和 np 数组中出现的次数?掩码 RCNN 的面积
- python - 如何返回整个数组的顺序统计?