The JavaScript Object Notation (JSON ) is a semi-structured, text based data format. Much like XML , JSON has the ability to store and exchange hierarchical data in text form. It is often used for data transmission between servers and web applications or web connected devices, for example when using REST APIs .
While JSON closely resembles a subset of the JavaScript syntax, it is not only used by JavaScript-based applications . Many other programming languages natively support JSON .
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.