How can I extract all key names, even in nested objects with jq? For example, I have json:
{
"a": 1,
"b": {
"c": 2
}
}
and I want to get list: a, b, b.c
I know that for top level keys I can get this, with:
. | to_entries[] | .key
, but what about keys in nested objects?
Short jq solution:
jq -r '[paths | join(".")]' jsonfile
The output:
[
"a",
"b",
"b.c"
]
paths
function outputs the paths to all the elements in its input
join(".")
- to concatenate keys within hierarchical paths
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With