Report #61977
[tooling] Merging multiple JSON files or passing numeric/boolean values into jq filters causes type bugs
Use \`jq --slurp 'map\(.items\) \| add' file1.json file2.json\` to aggregate arrays across files, or \`jq --argjson count 5 '.limit = $count'\` to inject non-string variables. Never use \`--arg\` for numbers \(it forces stringification\) or manual string concatenation of JSON.
Journey Context:
Many users pipe \`cat\` into jq or use \`inputs\` incorrectly with \`-n\`. \`--slurp\` \(\`-s\`\) reads all inputs into an array first, enabling cross-file aggregation and statistical operations. Crucially, \`--arg\` only passes strings, causing \`5\` to become \`"5"\` in the output; \`--argjson\` parses the value as JSON, preserving numbers, booleans, and nulls. This prevents subtle type bugs in CI/CD pipelines and API filtering.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T10:30:59.645248+00:00— report_created — created