What is JSON (JavaScript Object Notation)?
About
JSON 99http://json.org/)) is a structured text format that stands for JavaScript Object Notation.
It is a simple text format that can be used for representing nested structures of data (lists of lists of dictionaries, …).
Why the J stands for Javascript in JSON ?
Because JSON is a format that comes from javascript.
Specifically specified in the RFC 4627:
JSON is a lightweight data interchange format based on a subset of JavaScript syntax (ECMA-262 3rd edition).
If you write the text object of a JSON file in a Javascript script, it will be directly seen as a JavaScript object.
Json vs Xml vs Tabular vs Yaml
JSON (Javascript Object Notation) has an obvious:
- advantage over XML in that the response is lightweight. Parsing such a result is trivial in JavaScript as the format is already a valid Javascript object.
- disavantage over tabular formats in that the space is less efficient. Example: Table - Csv Data Structure
YAML want to be an official subset of JSON. Every JSON file is also a valid YAML file (but not the other way around).
How can I represent a value in Json ?
Json supports only the following data type:
- boolean: false / null / true
Object
A json object shows the following syntax 1):
{
"Image": {
"Width": 800,
"Height": 600,
"Title": "View from 15th Floor",
"Thumbnail": {
"Url": "http://www.example.com/image/481989943",
"Height": 125,
"Width": "100"
},
"IDs": [
116,
943,
234,
38793
]
}
}
Array
A json array 2)shows the following syntax
- array of string
[ "foo", "bar" ]
- array of number
[ 1, 2 ]
[
{
"precision": "zip",
"Latitude": 37.7668,
"Longitude": -122.3959,
"Address": "",
"City": "SAN FRANCISCO",
"State": "CA",
"Zip": "94107",
"Country": "US"
},
{
"precision": "zip",
"Latitude": 37.371991,
"Longitude": -122.026020,
"Address": "",
"City": "SUNNYVALE",
"State": "CA",
"Zip": "94085",
"Country": "US"
}
]
String, Number, Boolean, Null
An object with:
- a boolean
{
"precision": "zip",
"Latitude": 37.371991,
"object": true,
"array": false,
"yolo": null
}
Syntax
Rfc
- rfc4627 - The application/json Media Type for JavaScript Object Notation (JSON)
- rfc7493 - The I-JSON Message Format - I-JSON (short for “Internet JSON”) is a restricted profile of JSON designed to maximize interoperability and increase confidence that software can process it successfully with predictable results.
Schema
Json-schema is a notation to define the structure/schema of a thing. Json-Schema
Format Specification from third application
Management
Parsing
See Json - Library
API Building
http://jsonapi.org/ - A specification for building API in Json
Json API
Comment
json does not support comment. A jsonc format has then make its apparition for config files.