Skip to content

Latest commit

 

History

History
64 lines (48 loc) · 2.61 KB

JsonFormat.md

File metadata and controls

64 lines (48 loc) · 2.61 KB

JSON 文件的基本格式

入门

JSON (JavaScript Object Notation)是一种数据存储格式,文件后缀名为 .json,可使用文本编辑器编辑(请使用 UTF-8 无 BOM 编码)

通常情况下,JSON 文件可以包含一个数组或是一个对象,以下是一个普通的 JSON 文件格式

  1. JSON 对象以 { (半角左大括号)开始,以 } (半角右大括号)结束
  2. JSON 对象本质是“键/值”对的无序集合,当值是字符串时,内部每一个元素的基本格式为"键":"值"
  3. 每一个元素之间以半角逗号 , 隔开

注:最后一个元素的结尾不能加 ,

以下是一个普通例子

{
  "键1": "值1",
  "键2": "值2"
}

进阶

注:仅制作资源替换 mod 的话以上内容已经足够,以下内容仅帮助更深入理解 JSON

JSON 为递归定义,可以包含以下六种类型的数据:

  1. 字符串,内容由一对半角双引号 "" 包裹。使用例:"我是字符串内容"
  2. 数字。使用例:114514
  3. 布尔值,只能为 truefalse
  4. 空值:null (一般用不到
  5. 数组,内容由一对半角中括号 [] 包裹,可包含0个到多个元素,元素之间有序,使用半角逗号 , 分割,每个元素都可为六种数据类型的任意一种。使用例:["我是数组", 123, true, null]
  6. 对象,内容由一对半角大括号 {} 包裹,可包含0个到多个键值对(key-value pair)元素,元素之间无序,使用半角逗号 , 分割,键是一个字符串,值为六种数据类型的任意一种,键和值之间用半角冒号 : 分割,同一对象的键不可重复。使用例:
{
    "我是键": "我是值",
    "the answer to life, the universe, and everything": 42,
    "我 吃 我 自 己": {
        "键必须由双引号包裹": [
            "数组也可以包含数组或对象",
            {
            	"就像": "这样"
        	}
        ]
    },
    "字符串内容包含双引号时需要转义": "写成\"(要使用半角反斜杠)",
    "包含反斜杠时也需要转义": "写成\\(两个半角反斜杠)",
    "末尾逗号": false
}

注: 虽然名为 javascript 对象声明,但与 javascript 中的对象声明仍有区别:

  1. 键必须由双引号包裹,不能不写引号或写单引号
  2. 同一对象的键不应重复
  3. 不可包含尾逗号
  4. 不可包含注释
  5. 没有骚操作,什么计算表达式,getter / setter__proto__,其它数据类型,统统不存在的

若仍想继续了解,可以参考 json.org