JSON
LECTURER: NGUYEN MINH DAO
JSON - Overview 2
JSON or JavaScript Object Notation is a lightweight text-based open standard
designed for human-readable data interchange.
LECTURER: NGUYEN MINH DAO
JSON - Overview 3
• JSON stands for JavaScript Object Notation.
• The format was specified by Douglas Crockford.
• It was designed for human-readable data interchange.
• It has been extended from the JavaScript scripting
language.
• The filename extension is .json.
• JSON Internet Media type is application/json.
• The Uniform Type Identifier is public.json.
LECTURER: NGUYEN MINH DAO
Uses of JSON 4
• It is used while writing JavaScript based applications that
includes browser extensions and websites.
• JSON format is used for serializing and transmitting
structured data over network connection.
• It is primarily used to transmit data between a server and
web applications.
• Web services and APIs use JSON format to provide public
data.
• It can be used with modern programming languages.
LECTURER: NGUYEN MINH DAO
Characteristics of JSON 5
• JSON is easy to read and write.
• It is a lightweight text-based interchange format.
• JSON is language independent.
LECTURER: NGUYEN MINH DAO
Simple Example in JSON 6
• The following example shows
how to use JSON to store
information related to books
based on their topic and
edition.
LECTURER: NGUYEN MINH DAO
7
LECTURER: NGUYEN MINH DAO
8
LECTURER: NGUYEN MINH DAO
JSON - Syntax 9
LECTURER: NGUYEN MINH DAO
JSON - Syntax 10
• JSON syntax is basically considered as a subset of
JavaScript syntax; it includes the following:
• Data is represented in name/value pairs.
• Curly braces hold objects, and each name is followed
by ':'(colon), the name/value pairs are separated by ,
(comma).
• Square brackets hold arrays and values are separated
by ,(comma).
LECTURER: NGUYEN MINH DAO
JSON - Syntax 11
• JSON supports the following two data structures:
• Collection of name/value pairs − This Data Structure
is supported by different programming languages.
• Ordered list of values − It includes array, list, vector
or sequence etc.
LECTURER: NGUYEN MINH DAO
12
LECTURER: NGUYEN MINH DAO
JSON - Data Types 13
LECTURER: NGUYEN MINH DAO
JSON format supports the following data types
14
LECTURER: NGUYEN MINH DAO
Number 15
• It is a double precision floating-point format in JavaScript and it
depends on implementation.
• Octal and hexadecimal formats are not used.
• No NaN or Infinity is used in Number.
LECTURER: NGUYEN MINH DAO
16
LECTURER: NGUYEN MINH DAO
String 17
• It is a sequence of zero or more double quoted Unicode characters
with backslash escaping.
• Character is a single character string i.e. a string with length 1.
LECTURER: NGUYEN MINH DAO
18
LECTURER: NGUYEN MINH DAO
Boolean 19
• It includes true or false values.
LECTURER: NGUYEN MINH DAO
Array 20
• It is an ordered collection of values.
• These are enclosed in square brackets which means that array
begins with .[. and ends with .]..
• The values are separated by , (comma).
• Array indexing can be started at 0 or 1.
• Arrays should be used when the key names are sequential
integers.
LECTURER: NGUYEN MINH DAO
21
LECTURER: NGUYEN MINH DAO
Object 22
• It is an unordered set of name/value pairs.
• Objects are enclosed in curly braces that is, it starts with '{' and
ends with '}'.
• Each name is followed by ':'(colon) and the key/value pairs are
separated by , (comma).
• The keys must be strings and should be different from each other.
• Objects should be used when the key names are arbitrary strings.
LECTURER: NGUYEN MINH DAO
23
LECTURER: NGUYEN MINH DAO
Whitespace 24
• It can be inserted between any pair of tokens. It can be added to
make a code more readable. Example shows declaration with and
without whitespace
LECTURER: NGUYEN MINH DAO
null 25
• It means empty type.
LECTURER: NGUYEN MINH DAO
JSON Value 26
• It includes −
• number (integer or floating point)
• string
• boolean
• array
• object
• null
LECTURER: NGUYEN MINH DAO
JSON Value
27
LECTURER: NGUYEN MINH DAO
JSON - Objects 28
LECTURER: NGUYEN MINH DAO
Creating Simple Objects 29
• JSON objects can be created with JavaScript. Let us see the
various ways of creating JSON objects using JavaScript
LECTURER: NGUYEN MINH DAO
This is an example that shows creation of an object in javascript
using JSON, save the below code as json_object.htm −
30
LECTURER: NGUYEN MINH DAO
31
LECTURER: NGUYEN MINH DAO
Creating Array Objects 32
LECTURER: NGUYEN MINH DAO
33
LECTURER: NGUYEN MINH DAO
JSON - Schema 34
LECTURER: NGUYEN MINH DAO
JSON - Schema 35
• JSON Schema is a specification for JSON based format for
defining the structure of JSON data.
• JSON Schema −
• Describes your existing data format.
• Clear, human- and machine-readable documentation.
• Complete structural validation, useful for automated testing.
• Complete structural validation, validating client-submitted
data.
LECTURER: NGUYEN MINH DAO
JSON Schema Validation Libraries
There are several validators currently available for different
programming languages. Currently the most complete and compliant 36
JSON Schema validator available is JSV.
LECTURER: NGUYEN MINH DAO
JSON Schema Example
Given below is a basic JSON schema, which covers a classical product
catalog description − 37
LECTURER: NGUYEN MINH DAO
38
LECTURER: NGUYEN MINH DAO
39
LECTURER: NGUYEN MINH DAO
You can check a http://json-schema.org for the complete list of
keywords that can be used in defining a JSON schema. The above
schema can be used to test the validity of the following JSON code − 40
LECTURER: NGUYEN MINH DAO
JSON - Comparison with XML 41
LECTURER: NGUYEN MINH DAO
JSON with Java 42
LECTURER: NGUYEN MINH DAO
Mapping between JSON and Java entities
JSON.simple maps entities from the left side to the right side
while decoding or parsing, and maps entities from the right to
43
the left while encoding.
LECTURER: NGUYEN MINH DAO
Encoding JSON in Java
44
LECTURER: NGUYEN MINH DAO
45
LECTURER: NGUYEN MINH DAO
Decoding JSON in Java
The following example makes use of JSONObject and JSONArray where JSONObject
is a java.util.Map and JSONArray is a java.util.List, so you can access them with
standard operations of Map or List.
46
LECTURER: NGUYEN MINH DAO