.github
.husky
docs
ansible.md
apt.md
awk.md
bash.md
c.md
cargo.md
chmod.md
cmake.md
cmd.md
cocoapods.md
colors-named.md
conan.md
cpp.md
cron.md
cs.md
css.md
curl.md
dart.md
djiango.md
docker.md
dockerfile.md
electron.md
emacs.md
emmet.md
emoji.md
es6.md
expressjs.md
ffmpeg.md
find.md
flutter.md
git.md
github-actions.md
gmail.md
golang.md
graphql.md
grep.md
homebrew.md
html-char.md
html.md
htop.md
http-status-code.md
ini.md
iso-639-1.md
java.md
javascript.md
jest.md
jq.md
json.md
julia.md
koajs.md
kotlin.md
latex.md
lerna.md
lessjs.md
lsof.md
lua.md
markdown.md
matlab.md
mime.md
mitmproxy.md
mysql.md
nestjs.md
netcat.md
netstat.md
nginx.md
npm.md
openssl.md
package.json.md
php.md
postgres.md
python.md
pytorch.md
quickreference.md
react.md
regex.md
resolutions.md
ruby.md
rust.md
sass.md
screen.md
sed.md
semver.md
sketch.md
ssh.md
styled-components.md
stylus.md
sublime-text.md
swift.md
swiftui.md
sysdig.md
systemd.md
tar.md
tmux.md
toml.md
typescript.md
vim.md
vscode.md
vue.md
vue2.md
webstorm.md
xcode.md
xpath.md
yaml.md
yarn.md
yum.md
scripts
.dockerignore
.editorconfig
.gitattributes
.gitignore
.lintstagedrc
.markdownlint.json
.prettierignore
.prettierrc
CONTRIBUTING.md
Dockerfile
LICENSE
README.md
package.json
renovate.json

* format: fix markdown * update: fix markdown * update: fix cron problems * update: delete .markdownlintignore * update * chore: add tab -> 4 space * chore: fix tab -> 2 in the .editorconfig
6.0 KiB
6.0 KiB
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://quickref.me",
"msg" : "Hi,\n\"QuickRef.ME\"",
"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)