我现在正在玩JQ, a JSON command line tool。我一直找不到能够帮助我解决一个相对简单的问题的资源。
用例是我的JSON文件具有我不需要的各种其他东西(最多500mb),如果我可以杀死特定 key 的数据,它将减少到将近1mb。
假设我有以下JSON:
{
"pages": {
"elems": { ... stuff ... }
},
"actions": {
"pages": { ... stuff ... }
}
}
我将运行哪种命令来删除第一级
pages
的整个对象和键,但完整保留较低一级的pages
?预期产量:
{
"actions": {
"pages": { ... stuff ... }
}
}
我尝试运行:
jq -c 'del(.pages)' myfile.json >outputfile.json
但是,它似乎也破坏了所有称为pages
的子项键,结果是:{
"actions": {}
}
任何帮助,将不胜感激。
最佳答案
我相信您最初的尝试应该会按预期进行。这是我尝试时得到的:
$ jq 'del(.pages)' myfile.json
{
"actions": {
"pages": {
"stuff": "..."
}
}
}
Try it online at jqplay.org要删除所有页面,您需要
$ jq 'del(.. | .pages?)' myfile.json
{
"actions": {}
}
Try it online at jqplay.org关于json - 使用jq从父对象中删除 key ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47023795/