Об'єкт JSON містить методи для розбору JavaScript Object Notation (JSON) і конвертації значень у JSON. Його можна або просто викликати, або конструювати; і окрім своїх двох методів він не має у собі іншої корисної функціональності.
Опис
Об'єктна нотація JavaScript
JSON - це синтаксис для серіалізації об'єктів, масивів, чисел, строк, булевих значень, та null. Він заснований на синтаксисі JavaScript, проте дещо відрізняється від нього: деякий JavaScript не є JSON, і деякий JSON не є JavaScript. Докладніше у JSON: The JavaScript subset that isn't.
| Тип у JavaScript | Відмінність у JSON |
|---|---|
| Об'єкти та масиви | Назви полів повинні являти собою строки у подвійних лапках; прикінцеві коми заборонені. |
| Числа | Ведучі нулі також заборонені (При виконанні JSON.stringify нулі просто проігноруються, проте JSON.parse викине SyntaxError); після десяткової крапки повинна слідувати хоча б одна цифра. |
| Строки |
Лише обмежений набір символів можна екранувати; деякі керівні символи заборонені; такі символи юнікоду, як розділювач рядків (U+2028) та розділювач абзаців (U+2029) дозволені; строки повинні виділятись подвійними лапками. Зверніть увагу на наступні приклади, де
|
Повний синтаксис JSON виглядає так:
JSON = null
або true або false
або JSONNumber
або JSONString
або JSONObject
або JSONArray
JSONNumber = - PositiveNumber
чи PositiveNumber
PositiveNumber = DecimalNumber
або DecimalNumber . Digits
або DecimalNumber . Digits ExponentPart
або DecimalNumber ExponentPart
DecimalNumber = 0
або OneToNine Digits
ExponentPart = e Exponent
чи E Exponent
Exponent = Digits
або + Digits
або - Digits
Digits = Digit
чи Digits Digit
Digit = від 0 до 9
OneToNine = від 1 до 9
JSONString = ""
чи " StringCharacters "
StringCharacters = StringCharacter
чи StringCharacters StringCharacter
StringCharacter = будь-який символ
за виключенням " або \ або від U+0000 до U+001F
або EscapeSequence
EscapeSequence = \" або \/ або \\ або \b або \f або \n або \r або \t
або \u HexDigit HexDigit HexDigit HexDigit
HexDigit = від 0 до 9
або від A до F
або від a до f
JSONObject = { }
чи { Members }
Members = JSONString : JSON
чи Members , JSONString : JSON
JSONArray = [ ]
чи [ ArrayElements ]
ArrayElements = JSON
чи ArrayElements , JSON
Беззмістовні пробільні символи можуть бути будь-де за винятком JSONNumber (числа не повинні містити пробіли) або JSONString (де це сприймається за частину строки, або призведе до помилки). Символ табуляції (U+0009), повернення каретки (U+000D), початку рядка (U+000A) та пробіл (U+0020) - це всі дійсні пробільні символи.
Методи
JSON.parse()- Розбирає строку як JSON, як опція — перетворює результат і його властивості, та повертає його.
JSON.stringify()- Повертає строку JSON відповідно до поданого значення. Як опція — може включити до результату лише певні поля чи замінити значення полів згідно з побажаннями користувача.
Специфікації
| Специфікація | Статус | Примітка |
|---|---|---|
| ECMAScript 5.1 (ECMA-262) The definition of 'JSON' in that specification. |
Standard | Первинне визначення. |
| ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'JSON' in that specification. |
Standard | |
| ECMAScript (ECMA-262) The definition of 'JSON' in that specification. |
Living Standard |
Підтримка у браузерах
BCD tables only load in the browser