feat: add json
cheatsheet.
This commit is contained in:
parent
b77e9debae
commit
d428146a87
346
docs/json.md
Normal file
346
docs/json.md
Normal file
@ -0,0 +1,346 @@
|
||||
JSON
|
||||
===
|
||||
|
||||
这是理解和编写 JSON 格式配置文件的快速参考备忘单。
|
||||
|
||||
入门
|
||||
----
|
||||
|
||||
### 介绍
|
||||
|
||||
[JSON](https://json.org/) 是一种基于文本的轻量级开放标准,专为人类可读的数据交换而设计。
|
||||
|
||||
- JSON 代表 JavaScript 对象表示法
|
||||
- JSON 易于读写。
|
||||
- JSON 是与语言无关的数据交换格式
|
||||
- JSON 文件扩展名为 `.json`
|
||||
- JSON Internet 媒体类型为 `application/json`
|
||||
|
||||
### 示例
|
||||
|
||||
```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 |
|
||||
<!--rehype:class=table-thead-hide-->
|
||||
|
||||
### 字符串
|
||||
<!--rehype:data-warp-style=grid-row: span 3/span 3;-->
|
||||
|
||||
<!--rehype:-->
|
||||
| | |
|
||||
|------|----------------------------|
|
||||
| `\"` | 双引号 Double quote |
|
||||
| `\\` | 反斜杠 Backslash |
|
||||
| `\/` | 正斜杠 Forward slash |
|
||||
| `\b` | 退格 Backspace |
|
||||
| `\f` | 换页 Form feed |
|
||||
| `\n` | 换行 Newline |
|
||||
| `\r` | 回车 Carriage return |
|
||||
| `\t` | 标签 Tab |
|
||||
| `\u` | 后跟四个十六进制数字 |
|
||||
<!--rehype:class=table-thead-hide-->
|
||||
|
||||
#### 示例
|
||||
|
||||
```json
|
||||
{
|
||||
"url": "https://quickref.me",
|
||||
"msg" : "Hi,\n\"QuickRef.ME\"",
|
||||
"intro": "Share quick reference and cheat sheet for developers."
|
||||
}
|
||||
```
|
||||
|
||||
#### 无效字符串
|
||||
|
||||
```json
|
||||
{ "foo": 'bar' }
|
||||
```
|
||||
Have to be delimited by double quotes
|
||||
|
||||
|
||||
### 数字
|
||||
<!--rehype:data-warp-style=grid-row: span 2/span 2;-->
|
||||
|
||||
<!--rehype:-->
|
||||
| Type | Description |
|
||||
|------------|----------------------------------------|
|
||||
| `Integer` | Digits 1-9, 0 and positive or negative |
|
||||
| `Fraction` | Fractions like 0.3, 3.9 |
|
||||
| `Exponent` | Exponent like e, e+, e-, E, E+, E |
|
||||
|
||||
#### 示例
|
||||
|
||||
```json
|
||||
{
|
||||
"positive" : 12,
|
||||
"negative" : -1,
|
||||
"fraction" : 10.25,
|
||||
"exponent" : 1.0E+2,
|
||||
"zero" : 0
|
||||
}
|
||||
```
|
||||
|
||||
#### 无效的数字
|
||||
|
||||
```json
|
||||
{ "foo": 0xFF }
|
||||
```
|
||||
|
||||
在JSON中,只能使用十进制文字
|
||||
|
||||
### 对象 Objects
|
||||
|
||||
```json
|
||||
{
|
||||
"color": "Purple",
|
||||
"id": "210",
|
||||
"composition": {
|
||||
"R": 70,
|
||||
"G": 39,
|
||||
"B": 89
|
||||
},
|
||||
"empty_object": {}
|
||||
}
|
||||
```
|
||||
|
||||
用逗号分隔的多个键/值对
|
||||
|
||||
### 数组 Arrays
|
||||
|
||||
```json
|
||||
[1, 2, 3, 4, 5]
|
||||
```
|
||||
|
||||
以 `[` 开始并以 `]` 结束
|
||||
|
||||
### 对象数组
|
||||
|
||||
```json
|
||||
{
|
||||
"children": [
|
||||
{ "name": "Jimmy Smith", "age": 15 },
|
||||
{ "name": "Sammy Sosa", "age": 12 }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 数组对象
|
||||
|
||||
```json
|
||||
{
|
||||
"attributes": ["a1", "a2"],
|
||||
"methods": ["getter", "setter"],
|
||||
"empty_array": []
|
||||
}
|
||||
```
|
||||
|
||||
### 二维阵列
|
||||
|
||||
```json
|
||||
{
|
||||
"my_sequences": [
|
||||
[1, 2, 3],
|
||||
[4, 5, 6],
|
||||
[7, 8, 9, 0],
|
||||
[10, 11]
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 对象的对象
|
||||
|
||||
```json
|
||||
{
|
||||
"Mark McGwire": {
|
||||
"hr": 65,
|
||||
"avg": 0.278
|
||||
},
|
||||
"Sammy Sosa": {
|
||||
"hr": 63,
|
||||
"avg": 0.288
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 嵌套
|
||||
|
||||
```json
|
||||
{
|
||||
"Jack": {
|
||||
"id": 1,
|
||||
"name": "Franc",
|
||||
"salary": 25000,
|
||||
"hobby": ["a", "b"],
|
||||
"location": {
|
||||
"country": "A", "city": "A-A"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
在 JavaScript 中访问 JSON
|
||||
----
|
||||
|
||||
### 访问对象
|
||||
|
||||
```javascript
|
||||
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 |
|
||||
<!--rehype:class=table-thead-hide-->
|
||||
|
||||
### 访问嵌套
|
||||
<!--rehype:data-warp-style=grid-row: span 2/span 2;-->
|
||||
|
||||
<!--rehype:-->
|
||||
```javascript
|
||||
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 |
|
||||
<!--rehype:class=table-thead-hide-->
|
||||
|
||||
### 访问对象数组
|
||||
<!--rehype:data-warp-style=grid-row: span 2/span 2;-->
|
||||
|
||||
<!--rehype:-->
|
||||
```javascript
|
||||
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... |
|
||||
<!--rehype:class=table-thead-hide-->
|
||||
|
||||
### 访问阵列
|
||||
|
||||
```javascript
|
||||
let myArray = [
|
||||
"Jason",
|
||||
"Doe",
|
||||
39,
|
||||
"M",
|
||||
70000,
|
||||
true
|
||||
];
|
||||
```
|
||||
|
||||
-----
|
||||
|
||||
| | |
|
||||
|--------------|-----------|
|
||||
| `myArray[1]` | "Doe" |
|
||||
| `myArray[5]` | true |
|
||||
| `myArray[6]` | undefined |
|
||||
<!--rehype:class=table-thead-hide-->
|
||||
|
||||
|
||||
另见
|
||||
----
|
||||
|
||||
- [JSON](https://www.json.org/json-en.html) _(json.org)_
|
||||
- [JSON Editor Online](http://jsoneditoronline.org/) _(jsoneditoronline.org)_
|
||||
- [Convert JSON Array to Markdown Table, CSV and more](https://tableconvert.com/json-to-markdown) _(tableconvert.com)_
|
Loading…
x
Reference in New Issue
Block a user