json - JQ 删除多个属性

标签 json jq

我有一个这样的对象:

{
    "a" : 1,
    "b" : {
        "c" : {
            "c1" : "abc",
            "source" : "abcxyz"
        },
        "d" : {
            "d1" : "abcd",
            "source" : "abcxyz"
        },
        "e" : {
            "e1" : "abcde",
            "source" : "abcxyz"
        }
    }
}

我的期望是
{
    "a" : 1,
    "b" : {
        "c" : {
            "c1" : "abc"
        },
        "d" : {
            "d1" : "abcd"
        },
        "e" : {
            "e1" : "abcde"
        }
    }
}

我想删除“源”属性。如果不指定键“c”、“d”或“e”,我怎么能做到这一点,因为它们是动态的。

最佳答案

遍历 .b 中的所有元素,然后将它们的值设置为删除 .source 的结果他们的元素:

.b[] |= del(.source)

关于json - JQ 删除多个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38626762/

相关文章:

json - 如何向用户显示 json feed?

javascript - 在传单 map 上显示json数据

json - 从R将数据导入Elastic Search

json - 处理非常大的输入文件而无需slurp

javascript - jq:如果可能的话如何转换为数字,如果没有则保持原样?

json - jq - 合并两个 JSON 文件时出错 "cannot be multiplied"

JQ:排除指定的嵌入键

php - 内容类型和 json_encode() 值

jquery - 你使用 Ajax JSON 还是 HTML?

json - 在 JSON 数组中查找重复项