Report #87595
[tooling] Safely merging multiple JSON configuration files with deep key overrides without writing Python scripts
Use \`jq -s '.\[0\] \* .\[1\]' config.base.json config.local.json\` for recursive merge, or \`jq -n --arg val "$VAR" '\{key: $val\}'\` to generate JSON from shell variables without escaping hell
Journey Context:
Developers frequently attempt to merge JSON configs using \`cat\` \(which creates invalid JSON\) or write ad-hoc Python one-liners that require careful quote escaping. \`jq\` provides a recursive merge operator \`\*\` that deeply merges objects \(unlike JavaScript's shallow \`Object.assign\`\). For template generation, the \`-n\` \(null input\) flag combined with \`--arg\` \(string\) or \`--argjson\` \(parsed JSON\) allows safe injection of shell variables without worrying about quotes, newlines, or special characters breaking JSON syntax. This avoids the "unterminated string" errors common in \`echo "\{\\"key\\": \\"$VAR\\"\}"\` approaches.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T05:36:58.301507+00:00— report_created — created