jq Cheat Sheet/Recursively transform all strings

Walk the document and mutate matching values.

Section: Variables, Reduce, and Advanced Transformations

Recursively transform all strings

bash
bash
echo '{"name":"alice","nested":["dev","ops"]}' | jq 'walk(if type == "string" then ascii_upcase else . end)'
Explanation

`walk()` is very useful for recursive normalization when available in your jq version.

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 Variables, Reduce, and Advanced Transformations
Capture value into variable
Store a subexpression and reuse it later.
OpenIn sheetbashsame section
Reduce array to sum
Aggregate values manually with `reduce`.
OpenIn sheetbashsame section
Reduce array into object map
Build an object keyed by a field.
OpenIn sheetbashsame section
Transform object entries
Update every key-value pair in an object.
OpenIn sheetbashsame section
Convert object to entries array
Represent an object as key-value entry objects.
OpenIn sheetbashsame section
Convert entries back to object
Turn key-value entry objects into a normal object.
OpenIn sheetbashsame section