json - 使用 JQ 转置 Json:使用 Map 作为父级时过滤内部列表
问题描述
您好我正在尝试使用 JQ 将 json 从一种格式转换为另一种格式。
我的源 JSON 和 JQ 查询位于:https ://jqplay.org/s/vt_4IbskaS
我的查询问题:
- 我无法过滤内部资产数组。(演绎 == 狗)
- 我无法从内部资产数组中限制/删除不需要的字段,我只想要 ID、Rendition 和 FileName ..
我的 JQ 查询::
{CompletedInstances,status , "AppMap": (.serviceResponse | map( { (.appId): .assets } ) | add ) }
预期响应:
{
"AppMap": {
"testFile1234": {
"assets": [
{
"filename": "testFile1234.scc",
"rendition": "Dog",
"assetId": 6565223
},
{
"filename": "testFile1234-BG.wav",
"rendition": "Dog",
"assetId": 8234169
},
{
"filename": "testFile1234-DK.wav",
"rendition": "Dog",
"assetId": 8234171
}
]
},
"testFile4444": {
"assets": [
{
"filename": "testFile1234.scc",
"rendition": "Dog",
"assetId": 8842169
}
]
}
},
"CompletedInstances": 0,
"status": "Completed"
}
解决方案
这将获得预期的输出:
{"AppMap": (.serviceResponse
| map({ (.appId): ({"assets": (.assets | (map(select(.rendition=="Dog"))
| map({filename, rendition, assetId}) ))})}) | add),
CompletedInstances, status}
推荐阅读
- java - Java 流将字符串拆分并收集到 Map
- python - 从 MYSQL 中提取日期之间的数据到 pandas
- java - @SQLResultSetMapping 列未找到问题
- python - 附加到仅引用一个键的 dict 值内的列表
- javascript - 如何使背景轮播图片变小
- javascript - 如何使用 JavaScript 创建和填充 HTML 表格
- python - matplotlib 直方图中“计数”和“观察次数”之间的差异
- microsoft-graph-calendar - 如何从扩展扩展的 ms 图中检索 delta calendarView?
- python - 不明白这个定时while循环属性错误
- node.js - 在 Sequelize NodeJS 中多次在同一字段上连接表的条件?