'''JavaScript Object Notation''' ('''JSON''') is a lightweight data-interchange format.https://www.json.org It consists of key-value pairs and arrays values, and it is used for storing and transmitting data in ''Minecraft''. == Occurences == In ''Minecraft'', JSON format is used to store the following data: * [[Text]] in [[written book]]s, [[sign]]s, custom names and the {{cmd|tellraw}}, {{cmd|title}}, {{cmd|bossbar}}, {{cmd|scoreboard}} and {{cmd|team}} commands.{{only|java}} * The pack.mcmeta file that describes a {{el|je}} [[resource pack]] and [[data pack]]. * The manifest.json file that describes a {{el|be}} [[add-on]]. * Files in a resource pack that define [[model]]s, [[sounds.json|sound events]], UI, etc.{{only|bedrock}} * Files in a behavior pack that define [https://docs.microsoft.com/en-us/minecraft/creator/reference/content/entityreference/ entity behaviors], [https://docs.microsoft.com/en-us/minecraft/creator/reference/content/blockreference/ block behaviors], item behaviors, etc.{{only|bedrock}} * [[Advancements]] and [[statistics]] (as .minecraft/saves/*/data/stats/*.json) * The profile data for the [[launcher]] (as [[launcher_profiles.json]]) * Information about downloaded [[version]]s (as [[version.json]]) * Files in a data pack that define [[advancements]], [[loot table]]s, [[tags]], [[recipes]], [[Custom dimension|dimensions]], [[Custom dimension|dimension types]] and [[predicates]].{{only|java}} == Syntax == === Data types === A JSON file must contain a single JSON value, which can use any of the following five data types: string, number, object, array, and boolean. JSON files can be contained in a single line, however it is often useful to use indentation and line breaks to make a long JSON file more readable. ==== String ==== A {{w|String (computer science)|string}} is delimited by quotes and can contain any combination of characters. Some special characters need to be escaped; this is done with a back slash (\). * {{cd|"foo"}} * {{cd|"Hello, world"}} * {{cd|"An escaped \" quote within a string"}} ==== Number ==== A number is defined by entering in any number. Numbers can be non-whole, as indicated with a period, and can use exponents with e. * {{cd|2}} * {{cd|-0.5}} * {{cd|3e6}} (=3×106) ==== Object ==== An {{w|Object (computer science)|object}}, also referred to as a compound, is delimited by opening and closing curly brackets and contains key/value pairs. Pairs are separated with commas, keys and associated values are separated with colons. Each contained key needs to have a name that is unique within the object. A value can be of any data type as well (including another object). { "Bob": { "ID": 1234, "lastName": "Ramsay" }, "Alice": { "ID": 2345, "lastName": "Berg" } } ==== Array ==== {{w|Array (data type)|Array}}s are delimited by opening and closing square brackets and can contain values of any data type, separated by commas. Unlike lists in NBT, values in a JSON array can use different data types. ["Bob", "Alice", "Carlos", "Eve"] ==== Boolean ==== A {{w|Boolean data type|boolean}} can be either true or false. { "Steve": { "isAlive": true }, "Alex": { "isAlive": false } } == See also == * https://en.wikipedia.org/wiki/JSON ==References== {{Reflist}} == Navigation == {{Navbox Java Edition technical|general}} {{Navbox Bedrock Edition}} [[Category:Development]] [[de:JSON]] [[es:JSON]] [[fr:JSON]] [[ja:JSON]] [[lzh:JSON]] [[pt:JSON]] [[ru:Команды консоли#JSON-текст]] [[th:JSON]] [[uk:JSON]] [[zh:JSON]]