JSON (for example, "Jason"), short for JavaScript Object Notation, is a lightweight computer data interchange format. It is a text-based, human-readable format for representing simple data structures and associative arrays (called objects).
The JSON format is specified in RFC 4627 by Douglas Crockford. The official Internet media type for JSON is application/json. The JSON file extension is .json.
The JSON format is often used for transmitting structured data over a network connection in a process called serialization.
Its main application is in Ajax web application programming, where it serves as an alternative to the traditional use of the XML format.
Although JSON was based on a subset of the JavaScript programming language
(specifically, Standard ECMA-262 3rd Edition—December 1999) and is commonly used with that language, it's considered to be a language-independent data format. Code for parsing and generating JSON data is readily available for a large variety of programming languages. The json.org website provides a comprehensive listing of existing JSON bindings, organized by language.
In December 2005, Yahoo! began offering some of its Web Services optionally in JSON. Google started offering JSON feeds for its GData web protocol in December 2006.
The following example shows the JSON representation of an object that describes a person. The object has string fields for first name and last name, contains an object representing the person's address, and contains a list of phone numbers (an array).
". This data could still be requested by a malicious page, but, since it results in an error when evaluated, it can't be manipulated in any way, including forwarding it to a third party.
Comparison with other formats
XML
XML is often used to describe structured data and to serialize objects. Unlike JSON, however, which is a way to represent data structures, XML is a markup language. This makes XML arguably more complex than JSON, which is specifically designed as a data interchange format, not a markup language. Both lack a rich (for example, explicit) mechanism for representing large binarydata types such as image data (although binary data can be stringified for both by converting to a base64 or similar representation).
YAML
Both functionally and syntactically, JSON is effectively a subset of YAML. Notably, the most widespread YAML library also parses JSON. Strictly speaking, the syntax isn't quite a perfect subset, primarily because YAML lacks native handling of some extended character sets allowed in JSON (for example unicode like UTF-32) and requires comma separators to be followed by a space. The most distinguishing point of comparison is that YAML offers the following syntax enrichments which have no corresponding expression in JSON:
Relational:: » YAML offers syntax for relational data: rather than repeating identical data later in a document, a YAML document can refer to an anchor earlier in the file/stream. Recursive structures (for example, an array containing itself) can be expressed this way.
;Extensible:: » YAML also offers extensible data types beyond primitives (i.e beyond strings, floats, ints, bools) which can include class-type declarations or Unicode types.
Accessibility and SEO
JSON+AJAX implementations are affected by significant web accessibility and search engine optimisation issues. The progressive enhancement methodology should be used to mitigate these issues.
Do you know how hard it is to get a link from a large encyclopaedia? Well we're different and will prove it. To get a link from us just add the following HTML to your site on a relevant page:
Then simply click through this link from your web page. Our crawlers will verify your link, extract the title of your web page and instantly add a link back to it. If you like you can remove the words Totally Explained and embed the link in article text.
As long as your link remains in place, we'll keep our link to you right here. Please play fair - our crawlers are watching. Your site must be closely related to this one's topic. Any kind of spamming, dubious practises or removing the link will result in your link from us being dropped and, potentially, your whole site being banned.