JSON

JSON, or JavaScript Object Notation, is an elegant way to organize data into key:value pairs and make web applications work like software.

In 2001, programmers who wanted to keep a constant connection open between a web browser and a web server had few choices. Flash or Java applets were common solutions. A constant connection is critical for web applications that work like software downloaded to your computer. Among other problems, web browsers shut down connections to remote servers every so often.

One solution to this connectivity problem is JSON. It recycles the connections between a web browser and remote server while providing a simple way to organize and transmit data.

JSON, or JavaScript Object Notation, may have started as part of the JavaScript language but it has become useful to any programming language where pairs of data are needed. It is language independent. JSON is used primarily to transfer data between web servers and web applications, as an alternative to XML with its more structured format.

With JSON, for example, data is organized into keys and their values. While keys need to be unique, values can be anything. The key in your pair can be a unique ID and the value a collection of data. In XML, another way to structure data, your collection of data would be broken down into a more structured set of tags. It is possible to have your collection of data be in XML format, but it’s not required. Your collection of data, for example, could be a binary file like an image. Or it could be co-ordinates for a map.

The JSON specification has data types and syntax. Data types include numbers, strings, booleans, objects, arrays, and null. These are the same or similar to any programming language. The JSON syntax is fairly simple: data is organized into pairs with commas (,) and braces {} used to mark off parts of a data file.

{
    "firstName": "John",
    "lastName": "Smith",
    "age": 25,
    "address": {
        "streetAddress": "21 2nd Street",
        "city": "New York",
        "state": "NY",
        "postalCode": 10021
    },
    "phoneNumbers": [
        {
            "type": "home",
            "number": "212 555-1234"
        },
        {
            "type": "fax",
            "number": "646 555-4567"
        }
    ]
}

Notice a few things with this example from Wikipedia:

  • The first and last {} braces contain the full JSON record.
  • key:value pairs are separated by a single colon (:).
  • key:value pairs are defined by “” double quotes before and after the key or value.
  • key:value pairs are separated from each other by a comma (,).
  • Some values, for example, for the key address, can include their own set of key:value pairs marked off by {} braces.
  • Some values, for example, for the key phoneNumbers, can include multiple sets of key:value pairs which are marked off by [] braces.

Data in JSON format is parsed by software applications, including Firefox, Internet Explorer, and other web browsers.

And if you want to learn a big word today, key:value pairs are also called associative arrays because keys are associated with their values in pairs.

Douglas Crockford is credited with realizing part of the JavaScript language could be adapted to solve the problem of maintaining connections between web browsers and remote servers, as well as provide a simple structure to organize data. Aside from Flash and Java applets, in 2001 other techniques included using web frames (remember those?) to silently refresh data in the web browser. JSON is a far more silent and elegant solution, with less impact on a web browser than Flash, Java applets, or frames.

If you use GMail or any web mail, then you know how JSON allows web browsers to act like Apple Mail or Microsoft Outlook, two software applications downloaded to computers to download, manage, and send email.

Learn More

JSON

http://www.json.org/
http://en.wikipedia.org/wiki/JSON
http://www.w3schools.com/json/
http://msdn.microsoft.com/en-us/library/bb299886.aspx
http://www.techterms.com/definition/json
http://www.copterlabs.com/blog/json-what-it-is-how-it-works-how-to-use-it/

Douglas Crockford

http://en.wikipedia.org/wiki/Douglas_Crockford
http://crockford.com/

Author

  • Tim Slavin

    Tim is an award-winning writer and technologist who enjoys teaching tech to non-technical people. He has many years experience with web sites and applications in business, technical, and creative roles. He and his wife have two kids, now teenagers, who are mad about video games.

Also In The March 2014 Issue

An Interview with Ben Heck

Ben Heckendorn is a self-taught maker with high energy, an internet show on Element14 (The Ben Heck Show), and a wonderfully wicked sense of humor. He also inspired this issue of the magazine.

Circuit Diagrams

Circuit diagrams are maps used to design and build electronic devices. This article describes connections, components, history, and tools used to create circuit diagrams.

Electronics Projects for Beginners

Here are links to projects, tutorials, parts, and online communities to help you get started with electronics projects for beginners.

Zina Lahr

Meet someone who used her love of electronics to create deeply fun and personal robots, gadgets, and other cool stuff.

Version Control Software

Version control software captures an evolving snapshot of one set of code along with all changes in case older versions need to be retrieved.

Brackets, Semicolons, or Nothing, Oh My

How do programming languages know what to process? And in the correct order?

JSON

JSON, or JavaScript Object Notation, is an elegant way to organize data into key:value pairs and make web applications work like software.

I do not think there is any thrill that can go through the human heart like that felt by the inventor as he sees some creation of the brain unfolding to success.

How to Use an Electronic Breadboard

Electronic breadboards are used to prototype electronic circuit designs and projects without messy solder or hot soldering irons.

Learn More Links for March 2014

Links from the bottom of all the March 2014 articles, collected in one place for you to print, share, or bookmark.

Node.js

Node.js is a software platform to create fast, scalable web applications quickly. These applications also use JavaScript on the server and web browsers.

Non-Relational Databases

These databases are relatively new technology to store data in databases. Here are a few options to explore.

News Wire Stories for March 2014

Interesting stories about computer science, software programming, and technology for the month of February 2014.

Interested but not ready to subscribe? Sign-up for our free monthly email newsletter with curated site content and a new issue email announcement that we send every two months.

No, thanks!