Please write a small CLI tool that works as described below. You may use a language of your choice.
Your program should expect valid JSON representing a two dimensional matrix. Do not implement JSON parsing by hand; please use a pre-existing JSON library for this purpose. (It's not as easy as it seems! And it's not the criterion we are testing.) It will be in one of the following two formats:
A) a list of lists
The expected format is [ [variable names], [first row], [second row], ... ]
recombinator '[ ["a","b","c"], [1,2,null], [null,3,4], [5,null,6] ]'
B) a list of objects
JSON objects are simply unordered collections of key:value pairs.
Each row is represented by an object containing the variables set for that row.
Accordingly, this form of input is convenient for sparse data sets.
recombinator '[ { "a":1, "b":2 }, { "b":3, "c":4 }, { "c":6, "a":5 } ]'
Your program should transform the input into a single JSON object mapping variable names to lists of values.
For input type (B), any variables that are missing in a row should be imputed with null.
The order of the values in each variable's list should be the same as the order of the rows.
'{ "a": [1,null,5], "b": [2,3,null], "c": [null,4,6] }'