In the previous tutorial we have seen that JSON supports two kinds of Data Structures.
1. Collection of name/value pairs
2. An ordered list of values: i.e array, vector, list, etc.
JSON name/value pairs can hold data of various kinds e.g. Strings, integer, Decimals, etc.
Lets see what datatypes JSON supports for key/value pairs :JSON supports 6 datatypes,
Primitive Datatypes :Primitive datatypes are as the basic building block of any programming language. These datatypes mostly have a one-to-one correspondence with the objects in memory.
There are 4 Primitive datatypes that we have in JSON,
1. Strings
2. Number
3. Boolean
4. null
Structured datatypes also known as aggregate data types. They are a collection of other datatypes. As they are defined by the user they are also called as user defiled data types.
Structure Datatypes :
5. Array
6. Object
1. Strings- Strings are sequence of Unicode characters surrounded by double quotes : e.g. "This is a string"
- double quotes within a string can be escaped by a back-slash /
- Note that if the strings are not encloded properly within double quotes the HTML file may throw error messages like "Uncaught SyntaxError: Unexpected token ILLEGAL"
Example :var stringExample=
{"SongName":"Imagine",
"ArtistName":"John Lennon",
"AlbumName":"\""Imagine\""};
<html>
<head>
<title>JSON String Datatype Example</title>
<script type="text/javascript">
function jsonExample() {
var stringExample = [{ "SongName":"Imagine",
"ArtistName":"John Lennon",
"AlbumName":"\"Imagine\""}];
var jsonData ="";
jsonData = jsonData + "Song Name : " + stringExample[0].SongName + " <br>";
jsonData = jsonData + "Artist Name : " + stringExample[0].ArtistName + " <br>";
jsonData = jsonData + "Album Name : " + stringExample[0].AlbumName + " <br><br>";
document.getElementById("data").innerHTML = jsonData;
}
</script>
</head>
<body onload="jsonExample();">
<div id="data">
</div>
</body>
</html>
Output
Song Name : Imagine
Artist Name : John Lennon
Album Name : "Imagine"
2. Number
- Number datatype can be integer, real number, floating points : e.g. 22
- Numbers can be positive, negative or exponential. e.g. -3.2e3 /
- JSON does not support Octol or Hexadecimal numbers.
Example :var NumberExample=
{"Date":11,
"Temp":-3,
"Speed": 3e10};
<html>
<head>
<title>JSON Number Datatype Example</title>
<script type="text/javascript">
function jsonExample() {
var BooleanExample= [
{"Date":11,
"Temp":-3,
"Speed": 3e10}];
var jsonData ="";
jsonData = jsonData + "Date : " + NumberExample[0].Date + " <br>";
jsonData = jsonData + "Temperature : " + NumberExample[0].Temp + " <br>";
jsonData = jsonData + "Speed : " + NumberExample[0].Speed + " <br><br>";
document.getElementById("data").innerHTML = jsonData;
}
</script>
</head>
<body onload="jsonExample();">
<div id="data">
</div>
</body>
</html>
Output
Date : 11
Temperature : -3
Speed : 30000000000
3. Boolean
- Boolean can have only two values True or False.
Example :var NumberExample=
{"flag": true,
"result":false};
<html>
<head>
<title>JSON Boolean Datatype Example</title>
<script type="text/javascript">
function jsonBooleanExample() {
var BooleanJsonExample = [
{"flag": true,
"result":false} ];
var jsonData ="";
jsonData = jsonData + "Flag Value : " + BooleanJsonExample[0].flag + " <br>";
jsonData = jsonData + "Result : " + BooleanJsonExample[0].result + " <br><br>";
document.getElementById("data").innerHTML = jsonData;
}
</script>
</head>
<body onload="BooleanJsonExample();">
<div id="data">
</div>
</body>
</html>
Output
Flag Value : true
Result : false
4. Null
- null represents empty value
- null is a special datatype in JSON that can be set to any datatype i.e strings, number, arrays, objects and booleans too.
Example :var NullJsonExample=
{"data": null,
"result":null};
<html>
<head>
<title>JSON Null Datatype Example</title>
<script type="text/javascript">
function jsonNullExample() {
var NullJsonExample = [
{"data": null,
"result":null} ];
var jsonData ="";
jsonData = jsonData + "Data : " + NullJsonExample[0].data + " <br>";
jsonData = jsonData + "result : " + NullJsonExample[0].result + " <br><br>";
document.getElementById("data").innerHTML = jsonData;
}
</script>
</head>
<body onload="jsonNullExample();">
<div id="data">
</div>
</body>
</html>
Output
Data : null
result : null
5. Array
- Arrays in JSON are Structured datatypes.
- Arrays in JSON are unordered collections of name/value pairs.
- Name & value pair are separated by a colon :
- Each pair starts with a { (left curly brace) and ends with a } (right curly brace).
- Two pairs are separated by a colon (,).
- Names are surrounded by double-quotes and are Unicode characters.
- Two Names(keys) should not have a same name.
- The value can be of any datatype, but not functions.
- JavaScript eval() is used to convert JSON text to an JSON Object.
Example:var ArrayExample= [
{"SongName":"Imagine",
"ArtistName":"John Lennon",
"AlbumName":"Imagine",
"Year":1971},
{"SongName":"Stairway to Heaven",
"ArtistName":"Led Zeppelin",
"AlbumName":"Led Zeppelin IV",
"Year":1971}
];
6. Object
- Objects in JSON are unordered collection of name/value pairs.
- Name and the value are seperated by colon :
- Two Name/value pairs are enclosed with {} curly braces.
- Names are enclosed with double-quotes and contains Unicode characters.
- Values can hold any values, but no functions.
- Objects can be retrieved using dot operator followed by name.
- JavaScript eval() is used to convert JSON text to an JSON Object.
Example:var ObjectExample=
["jsonObject" : {"SongName":"Imagine",
"ArtistName":"John Lennon",
"AlbumName":"Imagine",
"Year":1971}];
JSON values can be of type number, string, boolean, array, object and null.
We can include Whitespaces with-in values.
- JSON Text to JavaScript Object using eval() Example: JSON Tutorial
- JSON Tutorial: List of Lessons
- JSON Schema and Hyper-Schema : JSON Tutorial
- JSON with PHP Example: JSON Tutorial
- JSON Nest Objects Example: JSON Tutorial
- JSON Schema Validator Libraries: JSON Tutorial
- JSON Syntax : JSON Tutorial
- JSON Datatypes : Tutorial
- npm WARN saveError ENOENT: no such file or directory, open /mnt/c/package.json - JavaScript
- Error: Safari quit unexpectedly. Problem Report for Safari - MacOS
- Python: Fix - TypeError: NoneType object is not iterable - Python
- Mac: Turn off Auto Capitalization of Words - MacOS
- Managed Metadata error - The data returned from the tagging UI was not formatted correctly - SharePoint
- Clear SFTP Prompt Screen on macOS Terminal - MacOS
- [Eclipse] Syntax error, annotations are only available if source level is 1.5 or greater - Eclipse
- Bash: Allow Command to Fail without exiting Script - Bash