jq
is suppose to
process/filter JSON inputs and producing the filter's results as JSON
However, I found that after the jq
process/filter, output result is no longer in JSON format any more.
E.g., https://stedolan.github.io/jq/tutorial/#result5, i.e.,
$ curl -s 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.[] | {message: .commit.message, name: .commit.committer.name}'{"message": "Merge pull request #162 from stedolan/utf8-fixes\n\nUtf8 fixes. Closes #161","name": "Stephen Dolan"}{"message": "Reject all overlong UTF8 sequences.","name": "Stephen Dolan"}. . .
Is there any workaround?
UPDATE:
How to wrap the whole return into a json structure of:
{ "Commits": [ {...}, {...}, {...} ] }
I've tried:
jq '.[] | Commits: [{message: .commit.message, name: .commit.committer.name}]'jq 'Commits: [.[] | {message: .commit.message, name: .commit.committer.name}]'
but neither works.