banner
JSON 备忘录

JSON 备忘录

Scroll down

JSON 备忘清单

这是理解和编写 JSON 格式配置文件的快速参考备忘单。

入门

介绍

JSON 是一种基于文本的轻量级开放标准,专为人类可读的数据交换而设计。

  • JSON 代表 JavaScript 对象表示法
  • JSON 易于读写。
  • JSON 是与语言无关的数据交换格式
  • JSON 文件扩展名为 .json
  • JSON Internet 媒体类型为 application/json

示例

1
2
3
4
5
6
7
8
9
10
11
12
{
"name": "Jason",
"age": 39,
"height": 1.92,
"gender": "M",
"salary": 70000,
"married": true,
"children": [
{"name": "Tom", "age": 9},
{"name": "Ava", "age": 7}
]
}

类型

类型 描述
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 后跟四个十六进制数字

示例

1
2
3
4
5
{
"url": "https://jaywcjlove.github.io",
"msg" : "Hi,\n\"Quick Reference\"",
"intro": "为开发人员分享快速参考和备忘单"
}

无效字符串

1
{ "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

示例

1
2
3
4
5
6
7
{
"positive" : 12,
"negative" : -1,
"fraction" : 10.25,
"exponent" : 1.0E+2,
"zero" : 0
}

无效的数字

1
{ "foo": 0xFF }

在JSON中,只能使用十进制文字

对象 Objects

1
2
3
4
5
6
7
8
9
10
{
"color": "Purple",
"id": "210",
"composition": {
"R": 70,
"G": 39,
"B": 89
},
"empty_object": {}
}

用逗号分隔的多个键/值对

数组 Arrays

1
[1, 2, 3, 4, 5]

[ 开始并以 ] 结束

对象数组

1
2
3
4
5
6
{
"children": [
{ "name": "Jimmy Smith", "age": 15 },
{ "name": "Sammy Sosa", "age": 12 }
]
}

数组对象

1
2
3
4
5
{
"attributes": ["a1", "a2"],
"methods": ["getter", "setter"],
"empty_array": []
}

二维阵列

1
2
3
4
5
6
7
8
{
"my_sequences": [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9, 0],
[10, 11]
]
}

对象的对象

1
2
3
4
5
6
7
8
9
10
{
"Mark McGwire": {
"hr": 65,
"avg": 0.278
},
"Sammy Sosa": {
"hr": 63,
"avg": 0.288
}
}

嵌套

1
2
3
4
5
6
7
8
9
10
11
{
"Jack": {
"id": 1,
"name": "Franc",
"salary": 25000,
"hobby": ["a", "b"],
"location": {
"country": "A", "city": "A-A"
}
}
}

JSON 5

Objects

对象键可以是 ECMAScript 5.1 IdentifierName

1
2
3
4
{
width: 1920,
height: 1080,
}

数组可以有一个尾随逗号

1
2
3
4
5
[
1,
true,
'three',
]

允许单行和多行注释

1
2
3
4
{
// 一行注释
"name": "Kenny"
}

多行注释

1
2
3
4
5
{
/* 这是一个
多行注释 */
"name": "Kenny"
}

允许附加空白字符

代码点 描述
U+0009 水平制表符
U+000A 换行符
U+000B 垂直制表符
U+000C 换页符
U+000D 回车符
U+0020 空格
U+00A0 不间断空格
U+2028 行分隔符
U+2029 段落分隔符
U+FEFF 字节顺序标记
Unicode Zs 类别 空格分隔符 Unicode 类别中的任何其他字符

数字

数字可能有前导或尾随小数点

1
2
3
4
5
6
{
integer: 123,
withFractionPart: 123.456,
onlyFractionPart: .456,
withExponent: 123e-456,
}

数字可以是十六进制

1
2
3
4
{
positiveHex: 0xdecaf,
negativeHex: -0xC0FFEE,
}

数字可以是正无穷大、负无穷大和 NaN。

1
2
3
4
5
{
positiveInfinity: Infinity,
negativeInfinity: -Infinity,
notANumber: NaN,
}

数字可以以明确的加号开头

字符串

1
2
'Lorem ipsum dolor sit amet, \
consectetur adipiscing elit.'

以下是代表相同的意思

1
'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'
1
'\A\C\/\D\C'

以下是代表相同的意思

1
'AC/DC'

在 JavaScript 中访问 JSON

访问对象

1
2
3
4
5
6
7
8
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

访问嵌套

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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

访问对象数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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…

访问阵列

1
2
3
4
5
6
7
8
let myArray = [
"Jason",
"Doe",
39,
"M",
70000,
true
];

myArray[1] “Doe”
myArray[5] true
myArray[6] undefined

另见

其他文章
cover
Docker 备忘录
  • 25/01/08
  • 10:35
  • 后端编程
cover
PHP 备忘录
  • 25/01/08
  • 10:35
  • 后端编程
目录导航 置顶
  1. 1. JSON 备忘清单
    1. 1.1. 入门
      1. 1.1.1. 介绍
      2. 1.1.2. 示例
      3. 1.1.3. 类型
      4. 1.1.4. 字符串
      5. 1.1.5. 数字
      6. 1.1.6. 对象 Objects
      7. 1.1.7. 数组 Arrays
      8. 1.1.8. 对象数组
      9. 1.1.9. 数组对象
      10. 1.1.10. 二维阵列
      11. 1.1.11. 对象的对象
      12. 1.1.12. 嵌套
    2. 1.2. JSON 5
      1. 1.2.1. Objects
      2. 1.2.2. 允许单行和多行注释
      3. 1.2.3. 允许附加空白字符
      4. 1.2.4. 数字
      5. 1.2.5. 字符串
    3. 1.3. 在 JavaScript 中访问 JSON
      1. 1.3.1. 访问对象
      2. 1.3.2. 访问嵌套
      3. 1.3.3. 访问对象数组
      4. 1.3.4. 访问阵列
    4. 1.4. 另见
请输入关键词进行搜索