JSON Documents: Basics
What is a JSON?
- A JSON itself is a JSON object, marked by [1]
JSON Documents: Key-Value-Pairs
- A JSON object defines key(word):value pairs.
- Keys are formatted as strings, marked by quotation marks ("").
JSON Documents: Data types
- The key is always a string
- The value can be a string, a number, a boolean or null
- Additional data types are only possible by referencing them as external resources
{
"key": "value",
"string": "any string value",
"number": 1.0,
"bool": true,
"empty": null,
"image": "https://my.cloud/image-1.png"
}
JSON Documents: Subobjects
- The value can also be a JSON document (object) itself
- A nested object can have the same key-value pairs as the root document
- There is no limit in the nesting depth
{
"key": "value",
"string": "any string value",
"number": 1.0,
"bool": true,
"empty": null,
"object": {
"has": "it's own key-value-pairs"
}
}
JSON Documents: Arrays
- The value can also be an array (list)
- An array can contain any element, including objects and nested arrays
{
"key": "value",
"string": "any string value",
"number": 1.0,
"bool": true,
"empty": null,
"object": {
"has": "it's own key-value-pairs"
},
"array": [
"a list",
{"of": "any"},
["item1", 1.0, true]
]
}
JSON Documents: Pointer (1)
Pointer allow reference to
- An object within the JSON document
{
"firstname": "Susan",
"surname": "Birch",
"kids": ["Anne", "Tom"],
"emergency_contact": {
"$ref": "#/kids/0"
}
}
Syntax [2]:
# - the whole document = self-reference
#/kids - the value of the key "kids"
#/kids/0 - the first item within the array "kids"
JSON Documents: Pointer (2)
Pointer allow reference to
- An object within the JSON document
- An external JSON document
{
"firstname": "Susan",
"surname": "Birch",
"partner": {
"$ref": "http://www.personaldata.com/walter.birch.json"
}
}
JSON Documents: Next