JSON Vs XML
JSON Vs XML
Elena Myazina
20.5.2009
Introduction XML and JSON
Comparing JSON vs. XML
Conclusion and references
20.5.2009
XML
XML stands for EXtensible Markup Language
XML is a markup language much like HTML
XML was designed to carry data, not to display data
XML tags are not predefined. You must define your
own tags
XML is designed to be self-descriptive
20.5.2009
XML: Example
20.5.2009
XML: Well-formed
XML documents must have a root element
XML elements must have a closing tag
XML tags are case sensitive
XML elements must be properly nested
XML attribute values must always be quoted
20.5.2009
XML: Validity
Valid XML is An XML document that has an
associated document type declaration and complies
with the constraints expressed in it.
Document Type Definition (DTD)
XML Schema
Relax NG
ISO DSDL
20.5.2009
XML: Processing files
Programming languages and SAX API
Programming Languages and DOM API
And Others
20.5.2009
XML: Transformation engines and filters
XSL-FO is a declarative, XML-based page layout language.
An XSL-FO processor can be used to convert an XSL-FO
document into another non-XML format, such as PDF.
XSLT is a declarative, XML-based document
transformation language. An XSLT processor can use an
XSLT stylesheet as a guide for the conversion of the data
tree represented by one XML document into another tree
that can then be serialized as XML, HTML, plain text, or
any other format supported by the processor.
20.5.2009
XML: Transformation engines and filters
XQuery is a W3C language for querying, constructing
and transforming XML data.
XPath is a DOM-like node tree data model and path
expression language for selecting data within XML
documents. XSL-FO, XSLT and XQuery all make use
of XPath. XPath also includes a useful function
library.
Xlink - is an XML markup language used for
creating hyperlinks in XML documents
20.5.2009
XML: Advantages
XML provides a basic syntax that can be used to share information between
different kinds of computers, different applications, and different organizations.
With XML, your data can be available to all kinds of "reading machines" (Handheld
computers, voice machines, news feeds, etc)
XML provides a gateway for communication between applications, even
applications on wildly different systems. As long as applications can share data
(through HTTP, file sharing, or another mechanism)
It supports Unicode, allowing almost any information in any written human
language to be communicated.
It can represent common computer science data structures: records, lists and trees.
Its self-documenting format describes structure and field names as well as specific
values.
It is based on international standards.
20.5.2009
XML: DisAdvantages
It is difficult for the end-user to understand its capabilities.
XML syntax is redundant or large relative to binary representations of similar data,
especially with tabular data.
The redundancy may affect application efficiency through higher storage,
transmission and processing costs.
XML syntax is verbose, especially for human readers, relative to other alternative
'text-based' data transmission formats.
The hierarchical model for representation is limited in comparison to an object
oriented graph.
Expressing overlapping (non-hierarchical) node relationships requires extra effort.
XML namespaces are problematic to use and namespace support can be difficult to
correctly implement in an XML parser.
20.5.2009
JSON
JSON (JavaScript Object Notation) is a lightweight
data-interchange format
JSON code is valid JavaScript
JSON is a text format that is completely language
independent
JSON is built on two structures:
A collection of name/value pairs
An ordered list of values
JSON file extension: *.json
20.5.2009
JSON: Object, Array, Number
20.5.2009
JSON: String, Value
20.5.2009
JSON: Example
20.5.2009
JSON: in JavaScript
JSON is a subset of the object literal notation of JavaScript
var myJSONObject = {"bindings": [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
] };
To convert a JSON text into an object, you can use the eval() function. eval()
invokes the JavaScript compiler
var myObject = eval('(' + myJSONtext + ')');
In browsers that provide native JSON support, JSON parsers are also much
faster than eval
var myObject = JSON.parse(myJSONtext, reviver);
20.5.2009
JSONRequest
JSONRequest is proposed as a new browser service that allows for two-way data
exchange with any JSON data server without exposing users or organization to
harm.
It exchanges data between scripts on pages with JSON servers in the web.
It is hoped that browser makers will build this feature into their products in order
to enable the next advance in web application development.
JSONRequest is a global JavaScript object. It provides three methods: post, get, and
cancel.
JSONRequest does not send or receive cookies or passwords in HTTP headers
JSONRequest works only with JSON text
Reponses will be rejected unless they contain a JSONRequest content type
20.5.2009
JSON: in AJAX
20.5.2009
Comparing Criteria: Human readability
XML JSON
20.5.2009
Comparing Criteria: Data Creation
XML: JAXB or XmlBeans
20.5.2009
Comparing Criteria: Extensibility
XML
JSON
20.5.2009
Comparing Criteria: Speed
20.5.2009
Comparing Criteria: Fetching data from Server
20.5.2009
Comparing Criteria: Security
Solution
20.5.2009
Comparing Criteria: Others
20.5.2009
Conclusion
What to use depends on the applications and your requirements. For data-
oriented applications, I prefer JSON to XML due to its simplicity and
ease of processing on the client side. XML may be great on the server side, but
JSON is definitely easier to deal with on the client side.
20.5.2009
References
http://www.json.org/
http://www.w3schools.com/XML/
http://www.w3.org/XML/
http://wikipedia.org/JSON
http://wikipedia.org/XML
http://www.subbu.org/blog/2006/08/json-vs-xml
20.5.2009