2014-03-01 23:43:03 +04:00
---
2024-10-21 00:46:35 +03:00
language: JSON
2014-03-01 23:43:03 +04:00
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"]
2015-10-15 23:30:59 +03:00
- ["Michael Neth", "https://github.com/infernocloud"]
2018-11-12 22:14:08 +03:00
- ["Athanasios Emmanouilidis", "https://github.com/athanasiosem"]
2014-03-01 23:43:03 +04:00
---
2020-10-20 10:47:53 +03: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 23:43:03 +04:00
2023-07-09 09:02:47 +03:00
A piece of JSON can be any value of the types listed later, but in practice almost always represents either:
2017-08-16 22:32:09 +03:00
2015-10-20 11:54:32 +03: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 13:19:51 +03:00
2015-10-20 11:54:32 +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-15 23:35:13 +03:00
2015-10-20 11:54:32 +03: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 23:35:13 +03:00
2015-10-20 11:54:32 +03:00
Supported data types:
2015-10-15 23:30:21 +03:00
2015-10-20 11:54:32 +03: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 23:35:13 +03:00
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-20 11:54:32 +03:00
, "comma position": "doesn't matter, if it's before the next key, it's valid"
2014-06-13 22:20:21 +04:00
, "another comment": "how nice"
2015-10-20 11:54:32 +03:00
},
2015-10-15 23:30:21 +03:00
2015-10-20 11:54:32 +03:00
"whitespace": "Does not matter.",
2015-10-15 23:30:21 +03:00
2015-10-20 11:54:32 +03:00
"that was short": "And done. You now know everything JSON has to offer."
}
2015-10-15 23:30:21 +03:00
```
2015-10-20 11:54:32 +03:00
## Further Reading
2020-10-20 10:47:53 +03:00
* [JSON.org ](https://json.org ) All of JSON beautifully explained using flowchart-like graphics.
2018-10-20 18:49:46 +03:00
* [JSON Tutorial ](https://www.youtube.com/watch?v=wI1CWzNtE-M ) A concise introduction to JSON.