簡體   English   中英

jq:從嵌套對象中選擇鍵子集

[英]jq: selecting subset of keys from nested object

輸入:

{"success": true, "results": {"a": …, "b": …, "c": …}}

給定我想要保留b期望輸出:

{"success": true, "results": {"b": …}}

我嘗試過的事情:

$ jq 'del(select(.results.b | not))'
{"success": true, "results": {"a": …, "b": …, "c": …}}
# removes nothing from "results"

$ jq 'with_entries(select(.key == "success" or .key == "results.b"))'
{"success": true}
# nested comparison not understood; returns only "success"

謝謝!

這是一種解決方案:

.results |= {b}

樣品運行

$ jq -M '.results |= {b}' <<< '{"success":true, "results":{"a": "…", "b": "…", "c": "…"}}'
{
  "success": true,
  "results": {
    "b": "…"
  }
}

在jqplay.org上在線嘗試

另一種使用

代碼:

$ node<<EOF
var obj = $(</tmp/file.json);
delete obj.results.a;
delete obj.results.c;
console.log(JSON.stringify(obj));
EOF

輸出:

{"success":true,"results":{"b":"bbb"}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM