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
,/scoreboard
and/team
commands.[Java Edition only] - The
pack.mcmeta
file that describes a Java Edition resource pack and data pack. - The
manifest.json
file 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.
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.5
3e6
(=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
}
}