input data.json
[
{
"id": 0 ,
"foo": "bar"
} ,
{
"id": 1 ,
"foo": "baz"
} ,
{
"id": 2 ,
"foo": "dingo"
}
]
cat data.json | jq -r '(map(keys) | add | unique) as $cols | map(. as $row | $cols | map($row[.])) as $rows | $cols, $rows[] | @csv'