JavaScript Object Notation (JSON) is a lightweight data-interchange format.[1]
In Minecraft, JSON format is used to store the following data:
- Text in written books, signs, custom names and the
/tellraw,/title,/bossbar,/scoreboardand/teamcommands.[Java Edition only] - The
pack.mcmetafile that describes a Java Edition resource pack and data pack. - The
manifest.jsonfile that describes a Bedrock Edition add-on. - Files in a resource pack that define models, sound events, UI, etc.[Bedrock Edition only]
- Files in a behavior pack that define entity behaviors, block behaviors, item behaviors, etc.[Bedrock Edition only]
- Advancements and statistics (as
.minecraft/saves/*/data/stats/*.json) - The profile data for the launcher (as
.minecraft/launcher_profiles.json) - Information about downloaded versions (as
.minecraft/versions/*/*.json) - Files in a data pack that define advancements, loot tables, tags, recipes, dimensions, dimension types and predicates[Java Edition only].
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. To check the syntax of your JSON file, you can use a JSON validator, such as the one found on JSON-validate.
String[]
A 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 (\).
"foo""Hello, world""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.
2-0.53e6(=3×106)
Object[]
An 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[]
Arrays 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 Boolean can be either true or false.
{
"Steve": {
"isAlive": true
},
"Alex": {
"isAlive": false
}
}