JSON is widely preferred to serialize and send data over a network, for instance, between a web application and a web server. Serialization transforms data structures to a format that is appropriate for transferring over a network or for storing in a memory buffer or file for later retrieval.
JSON, as a data-interchange format, it also used to facilitate communication between incompatible platform. For instance, it becomes possible for a Java application on UNIX to send information to visual Basic application running on windows by using JSON.
When XML was introduced during the late 90s, it was a boon for several business mangers due to its intuitive HTML -like look . On the other hand, developers knew that parsing XML is not simple.
JSON is also preferred for developing JavaScript based applications, such as web sites and browser extensions. Even Application Programming Interfaces (APIs) and web services uses JSON to send public data.
History of JSON
JSON was introduced to fulfil the requirement of real-time, stateful exchange of data between a server and client but without plugins such as java applets. While Douglas Crockford originally specified this new format, the term was first coined at the state software company started by co-founders namely, Rebert F, Chip Morningstar, and Crockford.
The co-founders decided to develop a system that can harness the normal browser potential as well as offer an abstraction layer for designing stateful applications for the web. These applications should maintain a persistent connection with the server by having two Hypertext Transfer Protocol (HTTP) connections open. These connections should be recyclable prior to the typical timeout of the browser, in case of no further exchange of data. One of the co-founders Morningstar developed the notion for such a state application framework.
Features of JSON
Standard Structure: The JSON format has a standard structure, making it easier for developers to write code.
Simplicity: The representation of data in JSON format is simple, which makes it simpler for a developer to comprehend the code. Even parsing becomes easy, regardless of the program language in use. The compact and simple JSON format allows quick transfer of data across platforms for reaching a variety of users across the globe.
Open: JSON is similar to XML in terms of openness. It is publicly available and is not at the core of corporate/political tussles for standardization. One can easily take advantage of open structure for adding other elements when needed and adapt the system to hold new industry-specific terms. If these terms are in XML format, one can automatically convert them to JSON, as migrating is straightforward.
simplicity: The representation of data in JSON format is simple, which makes it simpler for a developer to comprehend the code. Even parsing becomes easy, regardless of the program language in use. The compact and simple JSON format allows quick transfer of data across platforms for reaching a variety of users across the globe.
Open: JSON is similar to XML in terms of openness. It is publicly available and is not at the core of corporate/political tussles for standardization. One can easily take advantage of open structure for adding other elements when needed and adapt the system to hold new industry-specific terms.
Self-describing: JSON is self-describing, which means it is possible to describe one’s own field names and their specific values. This enables applications to manipulate JSON data.
Lightweight: Data in JSON format does not much storage space. It is also easier to obtain and load such data quickly as well asynchronously without reloading the page. This makes AJAX applications efficient in terms of performance.
Clean Data: With a standardized structure, JSON is less susceptible to errors. The application obtaining JSON data is aware of how to get the data and what to expect, which is different from using HTML. Such a structure also helps the developer in offering robust cross-browser solutions, which is useful considering the advent of different browser on mobile devices.
Efficiency: While using JSON data structure, the previous outputted data list is created or cloned on the client side. This means that only the changed information is transferred to client on every request. The small optimization is likely to boost both performance and usability of web applications, considering the swift increase in internet connections.
Extensibility: JSON allows storing only standard data such as numbers and text. On the other hand, XML allows storing any data type. While this is a benefit of using XML, it is also a con or a drawback, as it makes reading a bit more difficult.
Internationalization: JSON implements the Unicode norm due to which generic tools can easily manipulate its structured data. Thus, this structured data is easy to distribute to a wide range of platforms as well as users.
JSON vs. XML
Characteristic
JSON
XML
Data Types
Offers scalar data types and articulates structured data in the form of objects and arrays.
Does not offer any idea of data types due to which replying on XML Schema is essential for specifying information about the data types.
Array Support
Provides native support
Expresses arrays by conventions. For instance, XML employs an outer placeholder element that forms that content in an array as inner elements.
Object Support
Provides native support
Expresses objects by conventions, usually by combining attributes and elements.
Null support
Recognizes the value natively
Mandates the use of xsi:nil on elements in an instance document along with the import of the related namespace.
Comments
Does not support
Provides native support (via APIs).
Namespaces
Does not support namespaces and that naming collisions do not occur, as objects are nested or the object member name has a prefix.
Accepts namespaces to prevent name collisions and safely extend the prevalent XML standards.
Formatting
Is simple and offers more direct data mapping.
Is complex and needs more effort for mapping application types to elements.
Size
Has very short syntax, which gives formatted text wherein most space is taken up by the represented data.
Has lengthy documents, particularly in case of element-centric formatting.
Parsing in JavaScript
Needs no additional application for parsing (JavaScript’s eval() function works well).
Implements XML DOM and requires extra code for mapping text to JavaScript objects.
Parsing
Has JSONPath for selecting specific sections of the data structure but is not widely used.
Has XPath specification for doing the same in an XML document and is widely used.
Styling
Has no special specification
Has XSLT specification for styling an XML document
Security
Is less secure, as the browser has no JSON parser
Is more secure.
Let us now see how XML and JSON format appears while storing the details of three students. These details are stored in a text-based format for later retrieval.