Baseline Widely available *
JSON
å½å空é´å¯¹è±¡å
å«ç¨äºè§£æ JavaScript 对象表示æ³ï¼JSONï¼åå°å¼è½¬æ¢ä¸º JSON å符串çéææ¹æ³ã
ä¸å¤§å¤æ°å
¨å±å¯¹è±¡ä¸åï¼JSON
䏿¯ä¸ä¸ªæé 彿°ãä¸è½å°å®ä¸ new
è¿ç®ç¬¦ ä¸èµ·ä½¿ç¨ï¼ä¹ä¸è½å° JSON
对象ä½ä¸ºå½æ°è°ç¨ãJSON` çææå±æ§åæ¹æ³é½æ¯éæçï¼å°±å Math
å¯¹è±¡ä¸æ ·ï¼ã
JSON æ¯ä¸ç§è¯æ³ï¼ç¨æ¥åºååå¯¹è±¡ãæ°ç»ãæ°å¼ãå符串ãå¸å°å¼å null
ãå®åºäº JavaScript è¯æ³ï¼ä½ä¸ä¹ä¸åï¼å¤§é¨å JavaScript 䏿¯ JSONãä¾å¦ï¼
屿§åç§°å¿ é¡»æ¯åå¼å·æ¬èµ·æ¥çå符串ï¼ç¦æ¢åºç°å°¾ééå·ã
ç¦æ¢åºç°å导é¶ãå°æ°ç¹åå¿
é¡»è³å°æä¸ä½æ°åã䏿¯æ NaN
å Infinity
ã
ä»»ä½ JSON ææ¬é½æ¯ææç JavaScript 表达å¼ï¼ä½ä»
éäº JSON è¶
é修订ä¹åãå¨ä¿®è®¢ä¹åï¼U+2028 è¡åé符å U+2029 段åé符å
è®¸å¨ JSON çå符串åé¢éå屿§é®ä¸ä½¿ç¨ï¼ä½å¨ JavaScript å符串åé¢éä¸ä½¿ç¨åæ ·çåé符ä¼å¯¼è´ SyntaxError
ã
å
¶ä»åºå«å
æ¬åªå
许åå¼å·å符串ï¼ä¸æ¯æ undefined
ææ³¨éã对äºå¸æä½¿ç¨åºäº JSON çæ´äººæ§åé
ç½®æ ¼å¼çç¨æ·ï¼æ Babel ç¼è¯å¨ä½¿ç¨ç JSON5ï¼ä»¥åæ´å¸¸ç¨ç YAMLã
å¨ JavaScript 对象åé¢éä¸ JSON ä¸ï¼ç¸åçææ¬å¯è½ä»£è¡¨ä¸åçå¼ãå¦éäºè§£æ´å¤ä¿¡æ¯ï¼è¯·åé 对象åé¢éè¯æ³ä¸ JSON ç对æ¯ã
宿´ç JSON è¯æ³ææç JSON è¯æ³ç±ä»¥ä¸è¯æ³æ£å¼å®ä¹ï¼è¯¥è¯æ³ç¨ ABNF è¡¨ç¤ºï¼æèª IETF JSON æ åï¼RFCï¼ï¼
JSON-text = object / array begin-array = ws %x5B ws ; [ å·¦æ¹æ¬å· begin-object = ws %x7B ws ; { 左大æ¬å· end-array = ws %x5D ws ; ] 峿¹æ¬å· end-object = ws %x7D ws ; } å³å¤§æ¬å· name-separator = ws %x3A ws ; : åå· value-separator = ws %x2C ws ; , éå· ws = *( %x20 / ; ç©ºæ ¼ %x09 / ; åç´å¶è¡¨ç¬¦ %x0A / ; æ¢è¡ç¬¦ %x0D ; å车符 ) value = false / null / true / object / array / number / string false = %x66.61.6c.73.65 ; false null = %x6e.75.6c.6c ; null true = %x74.72.75.65 ; true object = begin-object [ member *( value-separator member ) ] end-object member = string name-separator value array = begin-array [ value *( value-separator value ) ] end-array number = [ minus ] int [ frac ] [ exp ] decimal-point = %x2E ; . digit1-9 = %x31-39 ; 1-9 e = %x65 / %x45 ; e E exp = e [ minus / plus ] 1*DIGIT frac = decimal-point 1*DIGIT int = zero / ( digit1-9 *DIGIT ) minus = %x2D ; - plus = %x2B ; + zero = %x30 ; 0 string = quotation-mark *char quotation-mark char = unescaped / escape ( %x22 / ; " å¼å· U+0022 %x5C / ; \ åææ U+005C %x2F / ; / æ£ææ U+002F %x62 / ; b éæ ¼ç¬¦ U+0008 %x66 / ; f æ¢é¡µç¬¦ U+000C %x6E / ; n æ¢è¡ç¬¦ U+000A %x72 / ; r å车符 U+000D %x74 / ; t å¶è¡¨ç¬¦ U+0009 %x75 4HEXDIG ) ; uXXXX U+XXXX escape = %x5C ; \ quotation-mark = %x22 ; " unescaped = %x20-21 / %x23-5B / %x5D-10FFFF HEXDIG = DIGIT / %x41-46 / %x61-66 ; 0-9, A-F, or a-f ; HEXDIG çæäº [RFC5234] ä¸ç HEXDIG è§å DIGIT = %x30-39 ; 0-9 ; DIGIT çæäº [RFC5234] ç DIGIT è§å
æ å
³ç´§è¦ç空ç½ç¬¦å¯ä»¥åºç°å¨ä»»ä½å°æ¹ï¼ä½ä¸å
æ¬å¨ JSONNumber
ï¼æ°åä¸å¾å
å«ç©ºç½ï¼æ JSONString
ï¼å符串ä¸çç¸åºå符ä¼è¢«è§£é为空ç½ï¼å¦åä¼å¯¼è´é误ï¼ä¸ãå¶è¡¨ç¬¦ï¼U+0009ï¼ãå车符ï¼U+000Dï¼ãæ¢è¡ç¬¦ï¼U+000Aï¼åç©ºæ ¼ï¼U+0020ï¼å符æ¯å¯ä¸ææç空ç½å符ã
JSON.parse()
è§£æ JSON å符串并è¿å对åºçå¼ï¼å¯ä»¥é¢å¤ä¼ å ¥ä¸ä¸ªè½¬æ¢å½æ°ï¼ç¨æ¥å°çæçå¼åå ¶å±æ§ï¼å¨è¿åä¹åè¿è¡æäºä¿®æ¹ã
JSON.stringify()
è¿å䏿å®å¼å¯¹åºç JSON å符串ï¼å¯ä»¥éè¿é¢å¤çåæ°ï¼æ§å¶ä» å 嫿äºå±æ§ï¼æè 以èªå®ä¹æ¹æ³æ¥æ¿æ¢æäºå±æ§å¼ã
{
"browsers": {
"firefox": {
"name": "Firefox",
"pref_url": "about:config",
"releases": {
"1": {
"release_date": "2004-11-09",
"status": "retired",
"engine": "Gecko",
"engine_version": "1.7"
}
}
}
}
}
ä½ å¯ä»¥ä½¿ç¨ JSON.parse()
æ¹æ³å°ä¸è¿° JSON å符串转å为 JavaScript 对象ï¼
const jsonText = `{
"browsers": {
"firefox": {
"name": "Firefox",
"pref_url": "about:config",
"releases": {
"1": {
"release_date": "2004-11-09",
"status": "retired",
"engine": "Gecko",
"engine_version": "1.7"
}
}
}
}
}`;
console.log(JSON.parse(jsonText));
è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4