Baseline Widely available *
СводкаÐбÑÐµÐºÑ JSON
ÑодеÑÐ¶Ð¸Ñ Ð¼ÐµÑÐ¾Ð´Ñ Ð´Ð»Ñ ÑазбоÑа обÑекÑной ноÑаÑии JavaScript (JavaScript Object Notation â ÑокÑаÑÑнно JSON) и пÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð½Ð°Ñений в JSON. Ðго нелÑÐ·Ñ Ð²ÑзваÑÑ ÐºÐ°Ðº ÑÑнкÑÐ¸Ñ Ð¸Ð»Ð¸ ÑконÑÑÑÑиÑоваÑÑ ÐºÐ°Ðº обÑекÑ, и кÑоме ÑвоиÑ
двÑÑ
меÑодов он не ÑодеÑÐ¶Ð¸Ñ Ð½Ð¸ÐºÐ°ÐºÐ¾Ð¹ инÑеÑеÑной ÑÑнкÑионалÑноÑÑи.
JSON ÑвлÑеÑÑÑ ÑинÑакÑиÑом Ð´Ð»Ñ ÑеÑиализаÑии обÑекÑов, маÑÑивов, ÑиÑел, ÑÑÑок логиÑеÑкиÑ
знаÑений и знаÑÐµÐ½Ð¸Ñ null
. Ðн оÑновÑваеÑÑÑ Ð½Ð° ÑинÑакÑиÑе JavaScript, однако вÑÑ Ð¶Ðµ оÑлиÑаеÑÑÑ Ð¾Ñ Ð½ÐµÐ³Ð¾: не каждÑй код на JavaScript ÑвлÑеÑÑÑ JSON, и не каждÑй JSON ÑвлÑеÑÑÑ ÐºÐ¾Ð´Ð¾Ð¼ на JavaScript. СмоÑÑиÑе Ñакже ÑÑаÑÑÑ JSON: подмножеÑÑво JavaScript, коÑоÑÑм он не ÑвлÑеÑÑÑ (на английÑком).
ТолÑко огÑаниÑеннÑй Ð½Ð°Ð±Ð¾Ñ Ñимволов Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·Ð°ÑкÑаниÑован; некоÑоÑÑе ÑпÑавлÑÑÑие ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð·Ð°Ð¿ÑеÑенÑ; ÑазÑеÑÐµÐ½Ñ ÑникоднÑе ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ ÑазделиÑелÑной линии (U+2028) и ÑазделиÑелÑного паÑагÑаÑа (U+2029); ÑÑÑоки Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð·Ð°ÐºÐ»ÑÑÐµÐ½Ñ Ð² двойнÑе кавÑÑки. СмоÑÑиÑе ÑледÑÑÑий пÑимеÑ, в коÑоÑом меÑод JSON.parse()
оÑÑабаÑÑÐ²Ð°ÐµÑ Ð±ÐµÐ· пÑоблем, а пÑи вÑÑиÑлении кода как JavaScript вÑбÑаÑÑваеÑÑÑ Ð¸ÑклÑÑение SyntaxError
:
var code = '"\u2028\u2029"';
JSON.parse(code); // ÑабоÑаеÑ
eval(code); // оÑибка
Ðиже пÑедÑÑавлен полнÑй ÑинÑакÑÐ¸Ñ JSON:
JSON = null or true or false or JSONNumber or JSONString or JSONObject or JSONArray JSONNumber = - PositiveNumber or PositiveNumber PositiveNumber = DecimalNumber or DecimalNumber . Digits or DecimalNumber . Digits ExponentPart or DecimalNumber ExponentPart DecimalNumber = 0 or OneToNine Digits ExponentPart = e Exponent or E Exponent Exponent = Digits or + Digits or - Digits Digits = Digit or Digits Digit Digit = 0 through 9 OneToNine = 1 through 9 JSONString = "" or " StringCharacters " StringCharacters = StringCharacter or StringCharacters StringCharacter StringCharacter = any character except " or \ or U+0000 through U+001F or EscapeSequence EscapeSequence = \" or \/ or \\ or \b or \f or \n or \r or \t or \u HexDigit HexDigit HexDigit HexDigit HexDigit = 0 through 9 or A through F or a through f JSONObject = { } or { Members } Members = JSONString : JSON or Members , JSONString : JSON JSONArray = [ ] or [ ArrayElements ] ArrayElements = JSON or ArrayElements , JSON
Ðо вÑеÑ
пÑодÑкÑиÑÑ
могÑÑ Ð¿ÑиÑÑÑÑÑвоваÑÑ Ð½ÐµÐ·Ð½Ð°ÑаÑие пÑобелÑнÑе ÑимволÑ, за иÑклÑÑением пÑодÑкÑий ЧиÑлоJSON
(ÑиÑла не Ð´Ð¾Ð»Ð¶Ð½Ñ ÑодеÑжаÑÑ Ð¿Ñобелов) и СÑÑокаJSON
(где они инÑеÑпÑеÑиÑÑÑÑÑÑ ÐºÐ°Ðº ÑаÑÑÑ ÑÑÑоки или возбÑждаÑÑ Ð¾ÑибкÑ). ÐÑобелÑнÑми Ñимволами ÑÑиÑаÑÑÑÑ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ ÑабÑлÑÑии (U+0009), возвÑаÑа каÑеÑки (U+000D), пеÑевода ÑÑÑоки (U+000A) и, ÑобÑÑвенно, пÑобела (U+0020).
JSON.parse()
РазбиÑÐ°ÐµÑ ÑÑÑÐ¾ÐºÑ JSON, возможно Ñ Ð¿ÑеобÑазованием полÑÑаемого знаÑÐµÐ½Ð¸Ñ Ð¸ его ÑвойÑÑв и возвÑаÑÐ°ÐµÑ ÑазобÑанное знаÑение.
JSON.stringify()
ÐозвÑаÑÐ°ÐµÑ ÑÑÑÐ¾ÐºÑ JSON, ÑооÑвеÑÑÑвÑÑÑÑÑ ÑÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð¼Ñ Ð·Ð½Ð°ÑениÑ, возможно Ñ Ð²ÐºÐ»ÑÑением ÑолÑко опÑеделÑннÑÑ ÑвойÑÑв или Ñ Ð·Ð°Ð¼ÐµÐ½Ð¾Ð¹ знаÑений ÑвойÑÑв опÑеделÑемÑм полÑзоваÑелем ÑпоÑобом.
ÐбÑÐµÐºÑ JSON
не поддеÑживаеÑÑÑ ÑÑаÑÑми бÑаÑзеÑами. ÐÑ Ð¼Ð¾Ð¶ÐµÑе ÑабоÑаÑÑ Ñ Ð½Ð¸Ð¼, добавив ÑледÑÑÑий код в наÑало ваÑиÑ
ÑкÑипÑов, он позволÑÐµÑ Ð¸ÑполÑзоваÑÑ Ð¾Ð±ÑÐµÐºÑ JSON
в ÑеализаÑиÑÑ
, коÑоÑÑе его еÑÑ Ð½Ðµ поддеÑживаÑÑ (напÑимеÑ, в Internet Explorer 6).
СледÑÑÑий алгоÑиÑм имиÑиÑÑÐµÑ ÑабоÑÑ Ð½Ð°ÑÑоÑÑего обÑекÑа JSON
:
if (!window.JSON) {
window.JSON = {
parse: function (sJSON) {
return eval("(" + sJSON + ")");
},
stringify: function (vContent) {
if (vContent instanceof Object) {
var sOutput = "";
if (vContent.constructor === Array) {
for (
var nId = 0;
nId < vContent.length;
sOutput += this.stringify(vContent[nId]) + ",", nId++
);
return "[" + sOutput.substr(0, sOutput.length - 1) + "]";
}
if (vContent.toString !== Object.prototype.toString) {
return '"' + vContent.toString().replace(/"/g, "\\$&") + '"';
}
for (var sProp in vContent) {
sOutput +=
'"' +
sProp.replace(/"/g, "\\$&") +
'":' +
this.stringify(vContent[sProp]) +
",";
}
return "{" + sOutput.substr(0, sOutput.length - 1) + "}";
}
return typeof vContent === "string"
? '"' + vContent.replace(/"/g, "\\$&") + '"'
: String(vContent);
},
};
}
Ðолее ÑложнÑми извеÑÑнÑми полиÑилами Ð´Ð»Ñ Ð¾Ð±ÑекÑа JSON
ÑвлÑÑÑÑÑ Ð¿ÑоекÑÑ JSON2 и JSON3.
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