JSON 速查表
这是理解和编写 JSON 格式配置文件的速查表,帮助新手快速入门。
入门
介绍
JSON 是一种基于文本的轻量级开放标准,专为人类可读的数据交换而设计。
- JSON 代表 JavaScript 对象表示法
- JSON 易于读写。
- JSON 是与语言无关的数据交换格式
- JSON 文件扩展名为 .json
- JSON Internet 媒体类型为 application/json
示例
{
  "name": "Jason",
  "age": 39,
  "height": 1.92,
  "gender": "M",
  "salary": 70000,
  "married": true,
  "children": [
    {"name": "Tom", "age": 9, "gender":"M"},
    {"name": "Ava", "age": 7, "gender":"F"}
  ]
}
类型
| 类型 | 描述 | 
|---|---|
| Number | 双精度浮点 | 
| String | 字符系列 | 
| Boolean | “true”或“false” | 
| Array | 有序的值序列 | 
| Value | 字符串、数字、布尔值、空值等 | 
| Object | 键/值对的无序集合 | 
| null | Null 或 Empty | 
字符串
| \" | 双引号 Double quote | 
| \\ | 反斜杠 Backslash | 
| \/ | 正斜杠 Forward slash | 
| \b | 退格 Backspace | 
| \f | 换页 Form feed | 
| \n | 换行 Newline | 
| \r | 回车 Carriage return | 
| \t | 标签 Tab | 
| \u | 后跟四个十六进制数字 | 
示例
{
  "url": "https://jaywcjlove.github.io",
  "msg" : "Hi,\n\"Quick Reference\"",
  "intro": "Share quick reference and cheat sheet for developers."
}
无效字符串
{ "foo": 'bar' }
Have to be delimited by double quotes
数字
| 类型 | 说明 | 
|---|---|
| Integer | 数字 1-9、0 和正数或负数 | 
| Fraction | 0.3、3.9 等分数 | 
| Exponent | 指数,如 e、e+、e-、E、E+、E | 
示例
{
  "positive" : 12,
  "negative" : -1,
  "fraction" : 10.25,
  "exponent" : 1.0E+2,
  "zero" : 0
}
无效的数字
{ "foo": 0xFF }
在JSON中,只能使用十进制文字
对象 Objects
{
  "color": "Purple",
  "id": "210",
  "composition": {
    "R": 70,
    "G": 39,
    "B": 89
  },
  "empty_object": {}
}
用逗号分隔的多个键/值对
数组 Arrays
[1, 2, 3, 4, 5]
以 [ 开始并以 ] 结束
对象数组
{
  "children": [
    { "name": "Jimmy Smith", "age": 15 },
    { "name": "Sammy Sosa", "age": 12 }
  ]
}
数组对象
{
  "attributes": ["a1", "a2"],
  "methods": ["getter", "setter"],
  "empty_array": []
}
二维阵列
{
  "my_sequences": [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9, 0],
    [10, 11]
  ]
}
对象的对象
{
  "Mark McGwire": {
    "hr": 65,
    "avg": 0.278
  },
  "Sammy Sosa": {
    "hr": 63,
    "avg": 0.288
  }
}
嵌套
{
  "Jack": {
    "id": 1,
    "name": "Franc",
    "salary": 25000,
    "hobby": ["a", "b"],
    "location": {
        "country": "A", "city": "A-A"
    }
  }
}
在 JavaScript 中访问 JSON
访问对象
let myObject = {
  "name": "Jason",
  "last": "Doe",
  "age": 39,
  "gender": "M",
  "salary": 70000,
  "married": true
};
| myObject.name | "Jason" | 
| myObject["name"] | "Jason" | 
| myObject.age | 39 | 
| myObject.other | undefined | 
| myObject[0] | undefined | 
访问嵌套
let myObject = {
    "ref": {
        "name": 0,
        "last": 1,
        "age": 2,
        "gender": 3,
        "salary": 4,
        "married": 5
    },
    "jdoe": [
        "Jason",
        "Doe",
        39,
        "M",
        70000,
        true
    ],
    "jsmith": [
        "Tom",
        "Smith",
        42,
        "F",
        80000,
        true
    ]
};
| myObject.ref.age | 2 | 
| myObject["ref"]["age"] | 2 | 
| myObject.jdoe | ["Jason", "Doe", 39 ...] | 
| myObject.jsmith[3] | "F" | 
| myObject[1] | undefined | 
访问对象数组
let myArray = [
  {
    "name": "Jason",
    "last": "Doe",
    "age": 39,
    "gender": "M",
    "salary": 70000,
    "married": true
  },
  {
    "name": "Tom",
    "last": "Smith",
    "age": 42,
    "gender": "F",
    "salary": 80000,
    "married": true
  },
  {
    "name": "Amy",
    "last": "Burnquist",
    "age": 29,
    "gender": "F",
    "salary": 60000,
    "married": false
  }
];
| myArray[0] | {"name": "Jason", ...} | 
| myArray[1].name | "Tom" | 
| myArray[1][2] | 42 | 
| myArray[3] | undefined | 
| myArray[3].gender | TypeError: Cannot read... | 
访问阵列
let myArray = [
  "Jason",
  "Doe",
  39,
  "M",
  70000,
  true
];
| myArray[1] | "Doe" | 
| myArray[5] | true | 
| myArray[6] | undefined | 
另见
- JSON (json.org)
- JSON Editor Online (jsoneditoronline.org)
- Convert JSON Array to Markdown Table, CSV and more (tableconvert.com)
                声明 定期同步开源项目
    reference
            
        评论
欢迎提交文档错误或者建议。提交成功后自己可见,其他用户待审核通过后才可见。
            您暂未登录
            
    
                必须登录后才能使用评论功能(评论、点赞、回复、删除等),请
    点击跳转登录
。首次评论仅自己可见,待管理员审核通过后,才会对外发布。