json - 如何使用jq在json文件中过滤子对象中的某些数组
问题描述
我需要使用嵌套结构过滤 JSON,如下所示。应过滤掉数组 b 中属性 x 在 x 的值中包含“z”的所有对象。其余的应保留在文件中。
{
"a": {
"b": [
{
"c": "1",
"x": "aaa",
},
{
"c": "2",
"x": "aza",
},
{
"c": "7",
"x": "azb",
}
]
},
"d": {
"e": [
"1"
],
"f": [
"2"
]
}
}
预期输出:
{
"a": {
"b": [
{
"c": "1",
"x": "aaa"
}
]
},
"d": {
"e": [
"1"
],
"f": [
"2"
]
}
}
解决方案
使用:select
_contains
jq '.a.b|=[.[]|select(.x|contains("z")|not)]' file
推荐阅读
- flutter - 可以用颤振创建一个布尔矩阵吗?
- javascript - 常规的 try/catch 块不适用于 Promise
- list - 如何从大表中制作过滤表?
- azure - 由于错误,azcopy 无法执行复制命令:如果没有 --recursive 或尾随通配符 (/*),则无法将目录用作源
- c# - 从 Azure DataLake Gen2 读取 Parquet 文件到 DataTable / SQLView 以查询 C#.Net Core 自动化测试
- python - 在python中查找具有特定名称的所有JSON键
- ios - iOS ARKit 如何将 ARFrame .capturedImage 保存到文件中?
- javascript - Vue 多个组件在一个包/文件中
- javascript - 使用 ReactJS 中的 Navigator.Clipboard API 从 Firestore 复制到剪贴板
- python - 在 python pandas 中打印交叉表