2014-03-01 23:43:03 +04:00
---
language: json
filename: learnjson.json
contributors:
- ["Anna Harren", "https://github.com/iirelu"]
2014-06-09 01:00:14 +04:00
- ["Marco Scannadinari", "https://github.com/marcoms"]
2015-10-08 13:19:51 +03:00
- ["himanshu", "https://github.com/himanshu81494"]
2014-03-01 23:43:03 +04:00
---
2015-10-15 23:30:21 +03:00
As JSON is an extremely simple data-interchange format, this is most likely going to be the simplest Learn X in Y Minutes ever.
2014-03-01 23:43:03 +04:00
2015-10-15 23:30:21 +03:00
JSON in its purest form has no actual comments, but most parsers will accept C-style (`//`, `/* */` ) comments. Some parsers also tolerate a trailing comma (i.e. a comma after the last element of an array or the after the last property of an object), but they should be avoided for better compatibility.
2015-10-09 10:39:22 +03:00
2015-10-09 12:27:19 +03:00
For the purposes of this, however, everything is going to be 100% valid JSON. Luckily, it kind of speaks for itself.
2014-03-01 23:43:03 +04:00
2015-10-15 23:21:52 +03:00
A JSON value must be a number, a string, an array, an object, or one of the following 3 literal names: true, false, null.
2015-10-15 23:30:21 +03:00
Supporting browsers are: Firefox 3.5+, Internet Explorer 8.0+, Chrome 1.0+, Opera 10.0+, and Safari 4.0+.
2015-10-15 23:21:52 +03:00
2015-10-15 23:25:26 +03:00
File extension for JSON files is ".json" and the MIME type for JSON text is "application/json".
2015-10-08 13:19:51 +03:00
2015-10-15 23:30:21 +03:00
JSON is built on two structures:
* A collection of name/value pairs. In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, or associative array.
* An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence.
2014-03-01 23:43:03 +04:00
```json
{
2014-06-09 01:00:14 +04:00
"key": "value",
2015-10-08 06:11:24 +03:00
2014-09-21 20:27:43 +04:00
"keys": "must always be enclosed in double quotes",
2014-03-01 23:43:03 +04:00
"numbers": 0,
2014-03-01 23:46:36 +04:00
"strings": "Hellø, wørld. All unicode is allowed, along with \"escaping\".",
2014-03-01 23:43:03 +04:00
"has bools?": true,
"nothingness": null,
"big number": 1.2e+100,
"objects": {
"comment": "Most of your structure will come from objects.",
2014-03-01 23:46:36 +04:00
"array": [0, 1, 2, 3, "Arrays can have anything in them.", 5],
2014-03-01 23:43:03 +04:00
"another object": {
"comment": "These things can be nested, very useful."
}
},
"silliness": [
{
"sources of potassium": ["bananas"]
},
[
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, "neo"],
[0, 0, 0, 1]
]
],
2015-10-08 06:11:24 +03:00
2014-06-09 01:00:14 +04:00
"alternative style": {
"comment": "check this out!"
2015-10-13 23:02:06 +03:00
, "comma position": "doesn't matter - as long as it's before the next key, then it's valid"
2014-06-13 22:20:21 +04:00
, "another comment": "how nice"
2015-10-15 23:30:21 +03:00
}
2014-03-01 23:43:03 +04:00
}
```
2015-10-15 23:30:21 +03:00
A single array of values by itself is also valid JSON.
```json
[1, 2, 3, "text", true]
```
Objects can be a part of the array as well.
```json
[{"name": "Bob", "age": 25}, {"name": "Jane", "age": 29}, {"name": "Jack", "age": 31}]
```