Choosing a shape
An array of objects for almost everything. It repeats the keys on every record, which costs bytes and buys the ability to read any single record without reference to the others.
A 2D array when the size matters and the consumer knows the column order. Column arrays when you are feeding a charting library that wants one array per series. An object keyed by the first column when you need lookups by id rather than a list.
Types
Everything is written as a string unless you turn type inference on, because a grid has no types and guessing corrupts identifiers. With inference on, a value that starts with a zero followed by a digit is still left as text, which keeps 007 and 0044 intact.