Unlike the more traditional column-based CSV text format, JSON stores data in nested objects and arrays, which themselves contain values. It can represent numbers, booleans, strings, null, ordered sequences of values (arrays), and string-value mappings (objects). This structure is highly adaptable to the addition of new data, meaning that the collection of data doesn't need to be limited by the columns within the datasource.
As JSON does not natively represent more complex data types like functions, regular expressions, dates, and so on, such complex information is usually serialized before storing it to JSON, and deserialized when reading the information back. Date objects for example, can be serialized to a string containing the date in ISO format.