Book Excerpt: Object-Oriented JavaScript
|
|
This chapter excerpt from
Microsoft AJAX Library Essentials by Cristian Darie, Bogdan
Brinzarea, is printed with permission from Packt
Publishing, Copyright 2007.
Introducing JSON
In AJAX applications, client-server communication is usually packed in XML
documents, or in the JSON (JavaScript Object Notation) format. Interestingly
enough, JSON's popularity increased together with the AJAX phenomenon, although
the AJAX acronym includes XML. JSON is the format used by the Microsoft AJAX
Library and the ASP.NET AJAX Framework to exchange data between the AJAX client
and the server, which is why it deserves a quick look here. As you'll learn,
the Microsoft AJAX Library handles JSON data packaging through Sys.
Serialization.JavaScriptSerializer, which is described in the Appendix—but more
on this later.
Perhaps the best short description of JSON is the one proposed by its offi cial
website, http://www.json.org: "JSON (JavaScript Object Notation) is a
lightweight data-interchange format. It is easy for humans to read and write.
It is easy for machines to parse and generate."
|
If you're new to JSON, a fair question you could ask would be: why another data
exchange format? JSON, just like XML, is a text-based format that it is easy to
write and to understand for both humans and computers. The key word in the defi
nition above is "lightweight". JSON data structures occupy less bandwidth than
their XML versions.
To get an idea of how JSON compares to XML, let's take the same data structure
and see how we would represent it using both standards:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response>
<clear>false</clear>
<messages>
<message>
<id>1</id>
<color>#000000</color>
<time>2006-01-17 09:07:31</time>
<name>Guest550</name>
<text>Hello there! What's up?</text>
</message>
<message>
<id>2</id>
<color>#000000</color>
<time>2006-01-17 09:21:34</time>
<name>Guest499</name>
<text>This is a test message</text>
</message>
</messages>
</response>
The same message, written in JSON this time, looks like this:
[
{"clear":"false"},
"messages":
[
{"message":
{"id":"1",
"color":"#000000",
"time":"2006-01-17 09:07:31",
"name":"Guest550",
"text":"Hello there! What's up?"}
},
{"message":
{"id":"2",
"color":"#000000",
"time":"2006-01-17 09:21:34",
"name":"Guest499",
"text":"This is a test message"}
}
]
}
]
As you can see, they aren't very different. If we disregard the extra formatting
spaces that we added for better readability, the XML message occupies 396 bytes
while the JSON message has only 274 bytes.
JSON is said to be a subset of JavaScript because it's based on the associative
arraynature of JavaScript objects. JSON is based on two basic structures:
-
Object: This is defi ned as a collection of name/value pairs. Each object
begins with a left curly brace ({) and ends with a right curly brace (}). The
pairs of names/values are separated by a comma. A pair of name/value has the
following form: string:value.
-
Array: This is defi ned as a list of values separated by a coma (,).
We've mentioned strings and values. A value can be a string, a number, an
object, an array, true or false, or null. A string is a collection of Unicode
characters surrounded by double quotes. For escaping, we use the backslash (\).
It's obvious that if you plan to use JSON, you need to be able to parse and
generate JSON structures in both JavaScript and ASP.NET, at least if the
communication is bidirectional. JSON libraries are available for most of
today's programming languages: ActionScript, C, C++, C#, VB.NET, Delphi, E,
Erlang, Java, JavaScript, Lisp,Lua, ML and Ruby, Objective CAML, OpenLazslo,
Perl, PHP, Python, Rebol, Ruby, and Squeak. When we said almost every
programming language we were right, weren't we!
If you plan to work with JSON data outside of the Microsoft AJAX Library, you
can use the library listed at http://www.json.org/js.html.
Related Links
Test your Oops knowledge with
our multiple choice questions!
Object Oriented Programming Interview Questions
OOPS in .NET
What is the relation between Classes and Objects? Explain different properties
of Object Oriented Systems. What is difference between Association, Aggregation
and Inheritance relationships? Explain the features of an abstract class in
NET. Difference between abstract classes and interfaces Similarities and
difference between Class and structure in .NET Features of Static/Shared
classes. What is Operator Overloading in .NET?.............
What
is object oriented programming (OOP)?
The object oriented programming is commonly known as OOP. Most of the languages
are developed using OOP concept. Object-oriented programming (OOP) is a
programming concept that uses "objects" to develop a system.........
What
are the various elements of OOP?
Various elements of OOP are.........
What
are the advantages of OOP?
It presents a simple, clear and easy to maintain structure. It enhances program
modularity since each object exists independently............
What
encapsulation, inheritance, and polymorphism mean
In OOP's world everything revolves around objects and classes, and OOP languages
usually offer three specifi c features for manipulating them—encapsulation,
inheritance, and polymorphism........
|