Baseline Widely available *
JSON
åå空éãªãã¸ã§ã¯ãã¯ã JavaScript Object Notation (JSON) ãè§£éããããå¤ã JSON ã«å¤æãããããéçã¡ã½ãããæã¡ã¾ãã
å¤ãã®ã°ãã¼ãã«ãªãã¸ã§ã¯ãã¨ã¯ç°ãªãã JSON
ã¯ã³ã³ã¹ãã©ã¯ã¿ã¼ã§ã¯ããã¾ãããã¾ãã new
æ¼ç®åã¨å
±ã«ä½¿ç¨ãããã颿°ã¨ã㦠JSON
ãªãã¸ã§ã¯ããå¼ã³åºããããããã¨ã¯ã§ãã¾ããã JSON
ã®ããããã£ã¨ã¡ã½ããã¯ãã¹ã¦éçã§ãï¼Math
ãªãã¸ã§ã¯ãã¨åãã§ãï¼ã
JSON ã¯ããªãã¸ã§ã¯ããé
åãæ°å¤ãæååãè«çå¤ã null
ãã·ãªã¢ã©ã¤ãºããæ§æã§ãããã㯠JavaScript ã®æ§æã«åºã¥ãã¦ãã¾ãããåºå¥ããããã®ã§ãã JavaScript ãªãã° JSON ã§ããã¨ããããã§ã¯ããã¾ããã
ããããã£åã¯äºéå¼ç¨ç¬¦ã§æ¬ã£ãæååã«ããªããã°ãªãã¾ãããæ«å°¾ã®ã«ã³ããç½®ãã¦ã¯ããã¾ããã
å
é ã«ã¼ããç½®ããã¨ã¯ç¦æ¢ããã¦ãã¾ããã¾ããå°æ°ç¹ã¯ 1 æ¡ä»¥ä¸ã®æ°åã®å¾ãã«ç½®ããªããã°ãªãã¾ããã NaN
㨠Infinity
ã«ã¯å¯¾å¿ãã¦ãã¾ããã
ãããã JSON ã®ããã¹ãã¯æå¹ãª JavaScript ã®å¼ã§ãããã ãããã㯠JSON superset 以éã§ã®è©±ã§ãããã®ãªãã¸ã§ã³ããåã§ã¯ã U+2028 LINE SEPARATOR 㨠U+2029 PARAGRAPH SEPARATOR 㯠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 ; [ left square bracket begin-object = ws %x7B ws ; { left curly bracket end-array = ws %x5D ws ; ] right square bracket end-object = ws %x7D ws ; } right curly bracket name-separator = ws %x3A ws ; : colon value-separator = ws %x2C ws ; , comma ws = *( %x20 / ; Space %x09 / ; Horizontal tab %x0A / ; Line feed or New line %x0D ; Carriage return ) 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 / ; " quotation mark U+0022 %x5C / ; \ reverse solidus U+005C %x2F / ; / solidus U+002F %x62 / ; b backspace U+0008 %x66 / ; f form feed U+000C %x6E / ; n line feed U+000A %x72 / ; r carriage return U+000D %x74 / ; t tab 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 equivalent to HEXDIG rule in [RFC5234] DIGIT = %x30-39 ; 0-9 ; DIGIT equivalent to DIGIT rule in [RFC5234]
éè¦ã§ãªããã¯ã¤ãã¹ãã¼ã¹ã¯ãåºæ¬çã«ä»»æã®å ´æã«ç½®ããã¨ãã§ãã¾ããã JSONNumber
ï¼æ°å¤ã«ç©ºç½ãå«ãã§ã¯ããã¾ããï¼ã JSONString
ï¼å¯¾å¿ããæåã§ããã¨è§£éãããããã¨ã©ã¼ãçºçãã¾ãï¼ã®å
é¨ã§ã¯ç½®ããã¨ãã§ãã¾ããããã¯ã¤ãã¹ãã¼ã¹ã¨ãã¦æå¹ãªæåã¯ã¿ãæå (U+0009)ããã£ãªãã¸ãªã¿ã¼ã³ (U+000D)ãã©ã¤ã³ãã£ã¼ã (U+000A)ãç©ºç½ (U+0020) ã®ã¿ã§ãã
JSON[Symbol.toStringTag]
ãããã㣠[Symbol.toStringTag]
ã®åæå¤ã¯æåå "JSON"
ã§ãããã®ããããã£ã¯ Object.prototype.toString()
ã§ä½¿ç¨ãã¾ãã
JSON.isRawJSON()
è¿å¤ã JSON.rawJSON()
ã«ãã£ã¦è¿ããããªãã¸ã§ã¯ãã§ãããã©ããããã¹ããã¾ãã
JSON.parse()
æåå text
ã JSON ã¨ãã¦è§£æãããªãã·ã§ã³ã§çæãããå¤ã¨ãã®ããããã£ã夿ããå¤ãè¿ãã¾ãã
JSON.rawJSON()
JSON ããã¹ããæ ¼ç´ãããçã® JSONããªãã¸ã§ã¯ãã使ãã¾ãã JSON ã«ã·ãªã¢ã©ã¤ãºãããã¨ããçã® JSON ãªãã¸ã§ã¯ãã¯ããã§ã« JSON ã®ä¸é¨ã§ãããã®ããã«æ±ããã¾ãããã®ããã¹ãã¯ãæå¹ãª 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));
æå¤±ã®ãªãæ°å¤ã®ã·ãªã¢ã©ã¤ãº
JSON ã¯ä»»æã®ç²¾åº¦ã®æ°å¤ãªãã©ã«ãæ ¼ç´ãããã¨ãã§ãã¾ãããããã JavaScript ã§ã¯åºå®ããã精度ãæã¤æµ®åå°æ°ç¹æ°ã使ç¨ãã¦ããããã JavaScript ã§ãã¹ã¦ã® JSON ã®æ°å¤ãæ£ç¢ºã«è¡¨ããã¨ã¯ã§ãã¾ãããä¾ãã°ã 12345678901234567890 === 12345678901234567000
㯠JavaScript ã§åãæµ®åå°æ°ç¹è¡¨ç¾ã ããã§ããã¤ã¾ãã 12345678901234567890
ã¨ãã JSON ã®æ°å¤ã«æ£ç¢ºã«å¯¾å¿ãã JavaScript ã®æ°å¤ã¯ãªãã¨ããæå³ã§ãã
ããæ°ã®æ£ç¢ºãªè¡¨ç¾ï¼BigInt
ã¾ãã¯ã«ã¹ã¿ã ã©ã¤ãã©ãªã¼ï¼ã使ç¨ãã¦ããã¨æ³å®ãã¾ãããã
const data = {
// ããã§ã¯æ£ç¢ºãªå¤ãæ ¼ç´ããããã« BigInt ã使ç¨ãããã¨ãã§ãã¾ããã
// æ°å¤ãæ´æ°ã§ãªãå¯è½æ§ãããå ´åã¯ãã«ã¹ã¿ã é«ç²¾åº¦æ°å¤ã©ã¤ãã©ãªã¼ã
// 使ç¨ãããã¨ãã§ãã¾ãã
gross_gdp: 12345678901234567890n,
};
ãããã·ãªã¢ã©ã¤ãºãã¦ãåãæ£ç¢ºãªæ°ã«è§£éãããã®ã§ããããã¤ãã®å°é£ãããã¾ãã
JSON.stringify
ã«æ°å¤ã渡ãå¿
è¦ãããã¾ãã replacer
颿°ã使ç¨ãããã toJSON
ã¡ã½ããã使ç¨ãã¾ããããããã©ã¡ãã®å ´åã§ããæ°å¤ã®å¤ææã«ãã§ã«ç²¾åº¦ã失ããã¦ãã¾ããæååã JSON.stringify
ã«æ¸¡ãã¨ãæ°å¤ã§ã¯ãªãæååã¨ãã¦ã·ãªã¢ã©ã¤ãºããã¾ããJSON.parse("12345678901234567890")
㯠12345678901234568000
ãè¿ãã¾ãããããã¯è¡¨ç¾å¯è½ãªæãè¿ãæ°ã«ä¸¸ããããããã§ãããªãã¤ãã¼é¢æ°ã使ç¨ããã¨ãã¦ãããªãã¤ãã¼é¢æ°ãå¼ã³åºãããåã«ãã§ã«ä¸¸ãããã¾ããä¸è¬çã«ãæ°å¤ã JSON ã«æå¤±ãªã夿ãããè§£éããã¦æ»ã£ã¦ãããã¨ãä¿è¨¼ããæ¹æ³ã¯ 2 ã¤ããã¾ãã 1 ã¤ã¯ JSON æ°å¤ãå«ãæ¹æ³ããã 1 ã¤ã¯ JSON æååãå«ãæ¹æ³ã§ãã JSON ã¯ãéä¿¡ãã©ã¼ããããã§ããããã JSON ã使ç¨ããå ´åãå¥ã®ã·ã¹ãã ï¼HTTP ãªã¯ã¨ã¹ãããã¼ã¿ãã¼ã¹ã«æ ¼ç´ãããããªã©ï¼ã¨éä¿¡ãã¦ããå¯è½æ§ãããã¾ããé¸ã¶ã¹ãæé©ãªè§£æ±ºçãåä¿¡å´ã®ã·ã¹ãã ã«ãã£ã¦ç°ãªãã¾ãã
JSON æååã®ä½¿ç¨åä¿¡å´ã®ã·ã¹ãã ã JavaScript ã¨åã JSON å¦çæ©è½ãæãããé«ç²¾åº¦ãªæ°å¤ã«å¯¾å¿ãã¦ããªãå ´åãæ°å¤ãæååã¨ãã¦ã·ãªã¢ã©ã¤ãºããåä¿¡å´ã§æååã¨ãã¦å¦çãããã¨ãã§ãã¾ããããã¯å¤ã JavaScript ã§å¯ä¸ã®é¸æè¢ã§ãããã¾ãã
ï¼BigInt
ãå«ãï¼ç¬èªã®ãã¼ã¿åã JSON ã«ã·ãªã¢ã©ã¤ãºããæ¹æ³ãæå®ããã«ã¯ããã¼ã¿åã« toJSON
ã¡ã½ããã追å ãããã JSON.stringify()
ã®ãªãã¬ã¤ãµã¼é¢æ°ã使ç¨ãã¾ãã
// toJSON() ã¡ã½ããã使ç¨
BigInt.prototype.toJSON = function () {
return this.toString();
};
const str1 = JSON.stringify(data);
// JSON.stringify() ããªãã¬ã¤ãµã¼ä»ãã§ä½¿ç¨
const str2 = JSON.stringify(data, (key, value) => {
if (key === "gross_gdp") {
return value.toString();
}
return value;
});
ã©ã¡ãã®å ´åã§ãã JSON ããã¹ã㯠{"gross_gdp":"12345678901234567890"}
ã®ããã«ãªããå¤ã¯æ°åã§ã¯ãªãæååã§ããããã¦ãåä¿¡è
å´ã§ JSON ãè§£éãã¦æååãå¦çãã¾ãã
ãã®ã¡ãã»ã¼ã¸ã®åä¿¡è
ããã¤ãã£ãã§é«ç²¾åº¦ãªæ°å¤ï¼Python ã®æ´æ°ãªã©ï¼ã«å¯¾å¿ãã¦ããå ´åãæ°å¤ã JSON æ°å¤ã¨ãã¦æ¸¡ãæ¹ãæããã«åªãã¦ãã¾ãããªããªãã JSON ããæååãè§£éãããã®æååããæ°å¤ãè§£éããã®ã§ã¯ãªããé«ç²¾åº¦ãªåã«ç´æ¥è§£éãããã¨ãã§ããããã§ãã JavaScript ã§ã¯ã JSON.rawJSON()
ã使ç¨ãã¦ã JSON ã½ã¼ã¹ããã¹ããã©ãããã¹ãããæ£ç¢ºã«æå®ãããã¨ã§ãæåã«æ°å¤ãçæãããã¨ãªãï¼çµæã¨ãã¦ç²¾åº¦ã失ãããï¼ãä»»æã®ãã¼ã¿åã JSON æ°å¤ã«ã·ãªã¢ã©ã¤ãºãããã¨ãã§ãã¾ãã
// toJSON() ã¡ã½ããã®ä½¿ç¨
BigInt.prototype.toJSON = function () {
return JSON.rawJSON(this.toString());
};
const str1 = JSON.stringify(data);
// JSON.stringify() ããªãã¬ã¤ãµã¼ä»ãã§ä½¿ç¨
const str2 = JSON.stringify(data, (key, value) => {
if (key === "gross_gdp") {
return JSON.rawJSON(value.toString());
}
return value;
});
JSON.rawJSON
ã«æ¸¡ãããã¹ãã¯ããã§ã« JSON ã®ä¸é¨ã§ãããã®ããã«æ±ããããããæååã¨ãã¦å度ã·ãªã¢ã©ã¤ãºããããã¨ã¯ããã¾ããããããã£ã¦ã JSON ããã¹ã㯠{"gross_gdp":12345678901234567890}
ã®ããã«ãªããå¤ã¯æ°åã«ãªãã¾ãããã® JSON ã¯ãåä¿¡å´ã®ã·ã¹ãã ã JavaScript ã¨åã精度å¶éãæã£ã¦ããªãéããä½è¨ãªå¦çããããã¨ãªãåä¿¡å´ã§è§£éãããã¨ãã§ãã¾ãã
JavaScript ã§é«ç²¾åº¦ã®æ°å¤ãæ ¼ç´ãã JSON ãè§£éããå ´åã JSON.parse()
ããªãã¤ãã¼é¢æ°ãå¼ã³åºãã¨ãåãåãå¤ããã§ã«è§£éããã¦ããï¼ç²¾åº¦ãè½ã¡ã¦ããï¼ã®ã§ãç¹ã«æ³¨æãã¦ãã ããã JSON.parse()
ã®ãªãã¤ãã¼é¢æ°ã® context.source
弿°ã使ç¨ãããã¨ã§ãèªåã§æ°å¤ãè§£éãç´ããã¨ãã§ãã¾ãã
const parsedData = JSON.parse(str, (key, value, context) => {
if (key === "gross_gdp") {
// ãããã¯ãç¬èªã®é«ç²¾åº¦æ°å¤ã©ã¤ãã©ãªã¼ã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã使ç¨
return BigInt(context.source);
}
return value;
});
// { gross_gdp: 12345678901234567890n }
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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