è¿æ¯çè§£åç¼å JSON æ ¼å¼é ç½®æä»¶çå¿«éåèå¤å¿åã
JSON æ¯ä¸ç§åºäºææ¬çè½»éçº§å¼æ¾æ åï¼ä¸ä¸ºäººç±»å¯è¯»çæ°æ®äº¤æ¢è设计ã
.jsonapplication/json{
"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 | åè·å个åå è¿å¶æ°å |
{
"url": "https://jaywcjlove.github.io",
"msg" : "Hi,\n\"Quick Reference\"",
"intro": "为å¼å人åå享快éåèåå¤å¿å"
}
{ "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ä¸ï¼åªè½ä½¿ç¨åè¿å¶æå
{
"color": "Purple",
"id": "210",
"composition": {
"R": 70,
"G": 39,
"B": 89
},
"empty_object": {}
}
ç¨éå·åéçå¤ä¸ªé®/å¼å¯¹
[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"
}
}
}
对象é®å¯ä»¥æ¯ ECMAScript 5.1 IdentifierName
{
width: 1920,
height: 1080,
}
æ°ç»å¯ä»¥æä¸ä¸ªå°¾ééå·
[
1,
true,
'three',
]
{
// ä¸è¡æ³¨é
"name": "Kenny"
}
å¤è¡æ³¨é
{
/* è¿æ¯ä¸ä¸ª
å¤è¡æ³¨é */
"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 ç±»å«ä¸çä»»ä½å ¶ä»å符 |
æ°åå¯è½æå导æå°¾éå°æ°ç¹
{
integer: 123,
withFractionPart: 123.456,
onlyFractionPart: .456,
withExponent: 123e-456,
}
æ°åå¯ä»¥æ¯åå è¿å¶
{
positiveHex: 0xdecaf,
negativeHex: -0xC0FFEE,
}
æ°åå¯ä»¥æ¯æ£æ 穷大ãè´æ 穷大å NaNã
{
positiveInfinity: Infinity,
negativeInfinity: -Infinity,
notANumber: NaN,
}
æ°åå¯ä»¥ä»¥æç¡®çå å·å¼å¤´
'Lorem ipsum dolor sit amet, \
consectetur adipiscing elit.'
以䏿¯ä»£è¡¨ç¸åçææ
'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'
'\A\C\/\D\C'
以䏿¯ä»£è¡¨ç¸åçææ
'AC/DC'
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 |