JavaScript, JSON objects and object literals

This is my crusade against the inconsiderate usage of the term JSON object in the context of JavaScript.

JSON and JSON objects

JSON objects are defined as follows:

JSON object
JSON object

Where value can be:

So this is a valid JSON string with a JSON object:

{"foo": "bar", "baz": 0}  

Object literals in JavaScript

Some people think, the object literals in JavaScript and JSON objects are the same and use the latter to describe the former. But that is wrong. The syntax for JSON objects is just a subset of the possible syntax for JavaScript objects. The object literal notation was just the model for JSON.

This is not a JSON object:

var foo =  {foo: "bar", baz: 0};  

It is an object literal. It would be only valid to talk about a JSON object in this case:

var foo = '{"foo": "bar", "baz": 0}';  

because now here we have a string that contains JSON and a JSON object.

The JSON object in JavaScript

Using the term JSON object for object literal notation seems to be even more wrong considering that there actually exists a JSON object in JavaScript. At least in the newer browsers. It is an object, available via the global variable JSON and provides the methods

Conclusion

Don’t use the term JSON object to describe JavaScript objects defined with object literal notation. It is misleading and confusing.


Further information: