json - 如何使用 jq 重新格式化 json 中的特定数据
问题描述
我是 json 新手,想从特定的 json 中提取数据(块)。我试图找到有关如何使用 jq 执行此操作的信息,但到目前为止我似乎无法得到我想要的。
我的json:
{
"now" : 1589987097.9,
"aircraft" : [
{
"mlat" : [],
"rssi" : -26.2,
"track" : 319,
"speed" : 354,
"messages" : 16,
"seen" : 0.7,
"altitude" : 38000,
"vert_rate" : 0,
"hex" : "44b5b4",
"tisb" : []
},
{
"squawk" : "6220",
"altitude" : 675,
"seen" : 1.1,
"messages" : 7220,
"tisb" : [],
"hex" : "484a95",
"mlat" : [],
"rssi" : -22
},
{
"hex" : "484846",
"tisb" : [],
"messages" : 20,
"speed" : 89,
"seen" : 0.4,
"squawk" : "7000",
"altitude" : 500,
"rssi" : -23.7,
"track" : 185,
"mlat" : []
},
{
"category" : "B1",
"mlat" : [],
"rssi" : -24.3,
"flight" : "ZSGBX ",
"altitude" : 3050,
"squawk" : "7000",
"seen" : 16.8,
"messages" : 37,
"tisb" : [],
"hex" : "00901a"
}
],
"messages" : 35857757
}
我想重新格式化此 json 以仅包含包含特定十六进制值的“块”。
例如,我希望我的输出包含 44b5b4 和 00901a:
{
"now" : 1589987097.9,
"aircraft" : [
{
"mlat" : [],
"rssi" : -26.2,
"track" : 319,
"speed" : 354,
"messages" : 16,
"seen" : 0.7,
"altitude" : 38000,
"vert_rate" : 0,
"hex" : "44b5b4",
"tisb" : []
},
{
"category" : "B1",
"mlat" : [],
"rssi" : -24.3,
"flight" : "ZSGBX ",
"altitude" : 3050,
"squawk" : "7000",
"seen" : 16.8,
"messages" : 37,
"tisb" : [],
"hex" : "00901a"
}
],
"messages" : 35857757
}
有人能告诉我如何删除所有没有这 2 个十六进制标识符但仍保持相同 json 结构的项目吗?
非常感谢!
解决方案
推荐阅读
- java - 从 Maven、Tomcat、jax-rs、Jersey 项目中分离前端代码
- amazon-web-services - AWS Cognito 中的自定义电话验证?
- c++ - 找到循环系统中两个值之间差异的最佳方法?
- python - scrapy splash应用程序中的长链异常
- javascript - 使用 javascript 在 json 中组合对象
- c# - C#打开PPTX文件到特定幻灯片索引
- django - 如何在具有字段作为外键的 django 模型中查询?
- angular - Angular/Typescript - 布尔变量未在 .subscribe 上更新
- html-select - 如何从 Chrome DevTools 中的 Select 中获取选项?
- amazon-web-services - AWS Sagemaker 是否会按 API 请求向您收费?