jq Arrays and Objects/Find matching nested objects

Search recursively for objects containing a field.

Section: Paths and Deep Updates

Find matching nested objects

bash
bash
echo '{"items":[{"name":"a"},{"child":{"name":"b"}}]}' | jq '.. | objects | select(has("name"))'
Explanation

The recursive descent operator `..` is powerful for document-wide search.

Learn the surrounding workflow

Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.

Related commands

Same sheet · prioritizing Paths and Deep Updates
Get all leaf values
Return every scalar value in a document.
OpenIn sheetbashsame section
Read value by explicit path
Look up a nested value using a path array.
OpenIn sheetbashsame section
Set value by explicit path
Write a nested value using a path array.
OpenIn sheetbashsame section
Delete multiple paths
Remove several nested paths at once.
OpenIn sheetbashsame section
Find all scalar paths
List paths that end in scalar values.
OpenIn sheetbashsame section
First array item
Get the first element.
OpenIn sheetbash1 tag match