2014-03-01 19:43:03 +00:00
---
2024-12-09 11:34:00 +00:00
name: JSON
2014-03-01 19:43:03 +00:00
filename: learnjson.json
contributors:
- ["Anna Harren", "https://github.com/iirelu"]
2014-06-08 21:00:14 +00:00
- ["Marco Scannadinari", "https://github.com/marcoms"]
2015-10-08 10:19:51 +00:00
- ["himanshu", "https://github.com/himanshu81494"]
2015-10-15 20:30:59 +00:00
- ["Michael Neth", "https://github.com/infernocloud"]
2018-11-12 19:14:08 +00:00
- ["Athanasios Emmanouilidis", "https://github.com/athanasiosem"]
2014-03-01 19:43:03 +00:00
---
2020-10-20 07:47:53 +00:00
JSON is an extremely simple data-interchange format. As [json.org ](https://json.org ) says, it is easy for humans to read and write and for machines to parse and generate.
2014-03-01 19:43:03 +00:00
2023-07-09 06:02:47 +00:00
A piece of JSON can be any value of the types listed later, but in practice almost always represents either:
2017-08-16 19:32:09 +00:00
2015-10-20 08:54:32 +00:00
* 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 various languages, this is realized as an array, vector, list, or sequence.
2015-10-08 10:19:51 +00:00
2015-10-20 08:54:32 +00: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-15 20:35:13 +00:00
2015-10-20 08:54:32 +00:00
For the purposes of this tutorial, everything is going to be 100% valid JSON. Luckily, it kind of speaks for itself.
2015-10-15 20:35:13 +00:00
2015-10-20 08:54:32 +00:00
Supported data types:
2015-10-15 20:30:21 +00:00
2015-10-20 08:54:32 +00:00
* Strings: `"hello"` , `"\"A quote.\""` , `"\u0abe"` , `"Newline.\n"`
* Numbers: `23` , `0.11` , `12e10` , `3.141e-10` , `1.23e+4`
* Objects: `{ "key": "value" }`
* Arrays: `["Values"]`
* Miscellaneous: `true` , `false` , `null`
2015-10-15 20:35:13 +00:00
2014-03-01 19:43:03 +00:00
```json
{
2014-06-08 21:00:14 +00:00
"key": "value",
2015-10-08 03:11:24 +00:00
2014-09-21 16:27:43 +00:00
"keys": "must always be enclosed in double quotes",
2014-03-01 19:43:03 +00:00
"numbers": 0,
2014-03-01 19:46:36 +00:00
"strings": "Hellø, wørld. All unicode is allowed, along with \"escaping\".",
2014-03-01 19:43:03 +00:00
"has bools?": true,
"nothingness": null,
"big number": 1.2e+100,
"objects": {
"comment": "Most of your structure will come from objects.",
2014-03-01 19:46:36 +00:00
"array": [0, 1, 2, 3, "Arrays can have anything in them.", 5],
2014-03-01 19:43:03 +00: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 03:11:24 +00:00
2014-06-08 21:00:14 +00:00
"alternative style": {
"comment": "check this out!"
2015-10-20 08:54:32 +00:00
, "comma position": "doesn't matter, if it's before the next key, it's valid"
2014-06-13 18:20:21 +00:00
, "another comment": "how nice"
2015-10-20 08:54:32 +00:00
},
2015-10-15 20:30:21 +00:00
2015-10-20 08:54:32 +00:00
"whitespace": "Does not matter.",
2015-10-15 20:30:21 +00:00
2015-10-20 08:54:32 +00:00
"that was short": "And done. You now know everything JSON has to offer."
}
2015-10-15 20:30:21 +00:00
```
2015-10-20 08:54:32 +00:00
## Further Reading
2020-10-20 07:47:53 +00:00
* [JSON.org ](https://json.org ) All of JSON beautifully explained using flowchart-like graphics.
2018-10-20 15:49:46 +00:00
* [JSON Tutorial ](https://www.youtube.com/watch?v=wI1CWzNtE-M ) A concise introduction to JSON.