JSON 语法基础
本篇作者:pardon
本教程所说的“JSON 模组”实际使用的是一种更宽松的方言——Hjson。标准 JSON 的规则可以用来理解结构,但 Mindustry 实际接受更多写法。
JSON 到底是什么?
你可以把 JSON 简单理解成 一张“填好的表格”。
比如下面这段 JSON 代码:
json
{
"name": "田所浩二",
"age": 24,
"isStudent": true
}它对应的表格就是:
| 姓名 | 田所浩二 |
|---|---|
| 年龄 | 24 |
| 学生 | 是 |
所以,写 JSON 本质上就是在填表格——
冒号 左边 是 键(key),相当于表格里的“项目名称”(如姓名、年龄);
冒号 右边 是 值(value),也就是我们要填写的“具体内容”。
值的类型有哪些?(⚠️ 重点!)
JSON 里的“值”只能是以下 6 种类型,没有别的花样:
| 类型 | 举例 | 说明 |
|---|---|---|
| 数字 | 1、1.7、-3 | 不区分整数和小数 |
| 布尔 | true 或 false | 只有这两个,不能加引号 |
| 字符串 | "你好"、"hello" | 必须用双引号包裹 |
| 对象 | 用花括号 {} 包裹 | |
| 数组 | [1, 2, 3] | 用方括号 [] 包裹 |
| null | null | 表示“空”,单独一类 |
Mindustry 中字符串转布尔时,只有 "true" 会被当作 true,其余字符串(如 "1"、"yes")都会变成 false;这虽然不会像 JavaScript 一样把 "false" 反转为 true,但仍可能造成与预期不符的结果。
括号问题也要注意
JSON 使用两种括号:
- 花括号 {} 用来包裹 对象(即一组键值对)
- 方括号 [] 用来包裹 数组(即一组有序的值)
使用括号时,必须成对出现,而且不能混用。常见错误包括:
| 错误写法 | 正确写法 | 说明 |
|---|---|---|
| {"name": "张三" | 缺少右花括号 | |
| ["a", "b" | ["a", "b"] | 缺少右方括号 |
| [ | [{"name": "张三"}] | 对象和数组嵌套时必须按顺序各自闭合 |
这些错误这样直接摆出来,看上去很明显.
但如果代码和括号嵌套比较多的话,肉眼还是不太容易观察出来的.
这也就是为什么我们不推荐你使用文本编辑器。