JSON supports the following 6 data types, the first 4 are primitive data types and the other 2 are complex types.
string | double-quoted Unicode characters of length 0 or more. Special characters need to be escaped with a backslash (). |
number | any integer or floating point. JSON does not have separate types for them |
boolean | true or false |
null | null or empty |
array | ordered collection of values |
object | an unordered collection of key/value pairs |
Let’s see some more details on each of them.
string
- It is a sequence of Unicode characters in double quotes. Its length can be 0 or more
- Special characters are escaped with a backslash
Following are various special characters with backslash escaping.
Name | Character |
Backslash | \ |
Double quote | \” |
Newline | \n |
Carriage return | \r |
Tab | \t |
Backspace | \b |
Forward slash | \/ |
Form feed | \f |
Example
{
"name": "John Davis",
"address": "977 Crescent St.\nOld Bridge, NJ 08857",
"forward": "Symbol for forward slash is /",
"first_letter": "a",
"error_msg": ""
}
number
- A number can have an integer or floating-point value.
- Both positive and negative values are supported.
- e-notation is supported by having a value, integer or floating point, followed by
e
orE
, then by the power of 10 to multiply by. For example, pi is 3.147e8
Example
{
"num1": 60,
"num2": -35,
"num3": 0.5,
"num4": -133.234,
"pi": 314700000
}
boolean
- boolean values are simply true or false.
- booleans are not enclosed in quotes.
Example
{
"participated": true,
"cleared": false
}
null
- null means empty. When a value is not found then it is represented as null.
- null is special in JSON, it shows that the value is not there.
- null does not need to be enclosed in quotes.
Example
{
"max_score": 70,
"avg_score": null
}
array
- an array is used to store an ordered collection of values.
- an array can have 0 or more values.
- array values can be of different data types.
- array values are comma-separated and enclosed in square brackets i.e. []
- an array can also contain objects.
Example
{
"names": ["John", "Michael", "Lewis", "Jordan"],
"ids": [101, 102, 203, 404],
"random": ["John", 45, null, false, 3.4],
"allowed_cards": []
}
Objects in an array
{
"candidates": [
{
"first_name": "John",
"cleared": true
},
{
"first_name": "Jordan",
"cleared": false
},
{
"first_name": "Davis",
"cleared": true
}
]
}
object
- an object is an unordered collection of key/value pairs.
- objects are separated by commas and enclosed in curly braces.
- An object can have 0 or more values.
- The values in an object are allowed to have different data types.
- an object can contain an array.
Example
{
"first_name": "John",
"cleared": true,
"age": 45,
"address": {
"flat_no": 977,
"street": "Crescent St.",
"state": "NJ"
},
"allowed_cards": [
"American Express",
"Visa"
]
}