JSON
JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级数据交换格式。[1]
Minecraft使用它来储存以下数据:
- 在成书、告示牌、自定义名称以及
/tellraw
、/title
和/bossbar
[仅Java版]命令里的文本。 - 描述Java版中资源包和数据包的
pack.mcmeta
文件。 - 描述基岩版附加包的
manifest.json
。 - 在资源包里定义模型、声音事件和UI[仅基岩版]的文件。
- 在行为包中定义实体行为的文件。
- 成就和统计(例如
.minecraft/saves/*/data/stats/*.json
)。 - 用于启动器的档案数据(例如
.minecraft/launcher profiles.json
)。 - 关于已下载的版本的信息(例如
.minecraft/versions/<VERSION>/<VERSION>.json
)。 - 在数据包中定义成就、战利品表和标签[仅Java版]的文件。
语法[编辑 | 编辑源代码]
JSON文件必须始终包含用于封装文件数据的大括号。虽然JSON可以写在一行内,但是一般为了可读性会加入缩进和换行。
{
"string": "Hi",
"number": 1,
"object": {"stuff": "foobar", "digit": 13},
"array": ["spam", "foo"]
}
JSON文件内所有元素的名称必须用引号引起。要定义值,便需要在名称后面添加一个冒号,并在冒号后写上值。
{
"name": "value"
}
除了最后一个元素,所有包含在对象或数组中的元素需要在它们的值后面添加一个逗号。
数据类型[编辑 | 编辑源代码]
JSON中有5种不同的有效数据类型:字符串(string)、数值(number)、对象(object)、数组(array)和布尔值(boolean)。
字符串[编辑 | 编辑源代码]
字符串由单引号或双引号定义,可以包含任何字符或空格的组合。
{
"foo": "bar",
"spam": "eggs"
}
数值[编辑 | 编辑源代码]
数值由输入的任何数字定义。
{
"two": 2,
"one": 1,
"second": 1
}
对象[编辑 | 编辑源代码]
对象由一对大括号定义,且可以包含其他数据类型。文件开头和结尾处的大括号会组成一个对象。
{
"Bob": {
"ID": 47182,
"lastName": "Ramsay"
},
"Alice": {
"ID": 47183,
"lastName": "Berg"
}
}
数组[编辑 | 编辑源代码]
数组由一对中括号定义,且同样可以包含其他数据类型。
{
"people": ["Bob", "Alice", "Carlos", "Eve"]
}
布尔值[编辑 | 编辑源代码]
布尔值使用“true”(真)或“false”(假)定义。
{
"Alice": {
"isMale": false
},
"Bob": {
"isMale": true
}
}