Українська

Інструменти розробника · JSON форматування & реаніматор

JSONІсторія стандартів: RFC 4627 до RFC 8259 і ECMA-404

· Підземелля

Опубліковано ToolAcre · Редакція журналу

свінгери стандарти введення

JSONІсторія стандартів: RFC 4627 до RFC 8259 і ECMA-404 ілюстрований з JSON токени і точний контрольний ліміт
Головна ToolAcre векторна ілюстрація

JSON Зазначено не менше чотирьох разів двома стандартними органами. Цей пост простежує шлях від Дугласа Скфорда json.org до RFC 8259 і ECMA-404, і пояснює, що насправді змінено для розробників по дорозі.

Яка специфікація мій парсер далі?

Яка специфікація є парсером наступним? Відповідність зазвичай видно на краях, а не в звичайних об'єктах і масивах. Тестувати рядок верхнього рівня, такі як `"ready"`, провідна позначка, дублікати імен користувачів і незвичайно великих чисел. Різні документи обговорюють синтаксис і взаємопроникність на різних рівнях, при цьому виконання додають власні типи даних і поведінку помилок. Наміння стандартом корисно тільки тоді, коли спостерігалий договір парсера зберігається окремо від припущення щодо кожного JSON виконання.

Репозиторійні докази для ToolAcre – бетонна і вузька, ніж історія загальних стандартів. У форматі `JSON.parse` виробляти значення і `JSON.stringify` випромінювати їх; після виходу з ладу локальний сканер надає стабільну діагностичну позицію та причину.

json.org і ранній опис JSON

json.org Новини JSON як компактне позначення, отримане з JavaScript’ об’єктно-літературний синтаксис і задокументовано його основні структури з невеликою граматикою. Цей ранній опис допоміг розробникам спільне ім'я та посилання на об'єкти, масиви, рядки, цифри, болеани та null. Для того, щоб описати сторінку як раннє публічне пояснення, ніж претендувати, не цитувати історичні докази тут, що одна сторінка або людина односторонньо виявлена форматом або встановленим його прийняттям.

Поточні джерела репозиторій не включають архівну історію json.org, використання або обговорення комітетів. Вони показують, як це застосування паузи і діагностику JSON сьогодні. Відповідно, історичні виписки в цій статті залишаються поруч із стандартними документами та не допускаються мотиви або ринкові ефекти, які ці локальні файли не можуть доводити.

RFC 4627 в 2006 — перший IETF опис, заявка/json Тип медіа та правило, що текст повинен бути об'єктом або масивом

RFC 4627, опублікований в 2006Опис JSON для Інтернет-переміну та реєстрації `application/json` тип медіа. Його визначення JSON текст вимагає об'єкта або масиву на рівні верхнього рівня, навіть якщо рядки, цифри та літери існували як значення всередині цих контейнерів. Це обмеження є корисною історичною відмінністю, оскільки документ, що містить лише `"ready"` може бути дійсним значенням в більш пізній формулювання при падінні зовні RFC 4627й JSON-текстне визначення.

У документі також обговорювалися питання кодування та безпеки в контексті реалізації, доступних у часі. Для цього репозиторію не варто прочитати: ToolAcre не містить RFC 4627 режим сумісності, а також його шлях делегування значення конструкції до господаря JavaScript двигун.

ECMA-404 в 2013 — мінімальний стандарт синтаксису Ecma, і чому дві організації закінчилися описом одного формату

ECMA-404, перший опублікований в 2013, характеристики JSON синтаксис у навмисно компактній формі. Його фокус є граматикою дійсності JSON текст, а не повний профіль обміну для кожного мережевого використання. Цей обсяг допомагає пояснити чому ECMA-404 і IETF документи можуть описати однакову базову нотацію при цьому відрізняючись в навколишній міжопераційній настанові, що вони підкреслюють. Наявність двох стандартних тіл не робить двох несумісних форматів у звичайному використанні.

Заяви про те, чому організації вибирають певні шляхи публікації, вимагають документальних джерел за межі цієї бази коду, тому ця стаття не є обов’язковими мотивами Комітету з дат. Відносна практична точка полягає в тому, що RFC 8259 і ECMA-404 призначені для вирівнювання синтаксису, при цьому RFC 8259 надає рекомендації, що стосуються взаємозамінного обміну.

RFC 7159 і RFC 8259

RFC 7159 Зареєструватися RFC 4627 в 2014 і розширення визначення визначення визначення JSON текст до будь-якого серійного значення, видалення об'єкта-або-аррейного правила верхнього рівня. RFC 8259 Зареєструватися RFC 7159 в 2017 і залишається IETF посилання зазвичай цитується для JSON. Вона вимагає UTF-8 для JSON обміняються між системами замкненої екосистеми та записами, що взаємовідносинуються навколо чисел, дублікатів імен, Unicode та байтів, а не химерних граматики, не гарантує ідентичних результатів.

Топ-рівень `true` є компактним способом дотримання сучасного кореневого правила в ToolAcre з `JSON.parse` приймає його. Цей результат показує поведінку цієї реалізації; він не реконструює при кожному браузері, сервері або API прийняти більш широке визначення.

Що змінено для розробників

Для роботи розробників найбільш чіткі зміни специфікацій є сучасним прийняттям будь-якого JSON значення в кореневому і міцному настанові для взаємозамінного кодування. Менш помітний урок полягає в тому, що правильний синтаксис все ще залишає вибір виконання листя. Приблизні імена об'єктів можуть бути згортені, замовлення учасника не є сеймантичним контрактом, дуже великі номери можуть втратити точність, і незвичайні послідовності Unicode можуть подорожувати по-різному через бібліотеки. Стандартно-компліантний документ може заслуговувати додаткові обмеження з програми schema.

У цьому форматі, дублікати імен і число токени спочатку проходять через `JSON.parse`, так що пізніше форматування відображає результат JavaScript значення, а не оригінального лексичного документа. Сканер сприяє діагностиці після збою; він не зберігає дублікатів або довільно-точних чисел. Ті репозиторійні спостереження.

Що це не криється

Що це не кришка є специфікаціями, що прошаровуються зверху JSON. JSON Schema описує обмеження на форму та значення документа; JSON пункти розміщення адрес в межах документа; JSON Патч являє собою зміни. Вони розв’язують різні проблеми з базової граматики і не повинні розглядатися як пізніше версій JSON сам. JSONC, JSON5 і подібні формати авторизації також поширюють або змінюють прийнятий синтаксис і вимагають власних парсерів, а не складатися в сувору перевірку мовчно.

Ця стаття також уникає всебічної соціальної історії JSON прийняття, підтримка веб-переглядачів та конкурсів XML Оскільки дані репозиторійних джерел не можуть заперечувати, що оповідання. Немає зовнішніх знімків придумано, щоб заповнювати проміжок.

Проживання: RFC 8259 - посилання на посилання

RFC 8259 – практичний IETF посилання на поточний JSON Синтаксис та керівництво міжоперабельності, з ECMA-404 забезпечення вирівняного стандарту Ecma синтаксису. RFC 4627 і RFC 7159 залишатися корисним для розуміння, як змінено початкове визначення, особливо на рівні вершини. Визначте документ, який підтримує точну заяву замість використання " JSON spec» як вагове звернення до влади, і відрізняє нормативні правила поведінки від поведінки, спостерігали в конкретному парсері.

Для ToolAcre, дефінована заява полягає в тому, що репозиторій використовує JavaScriptй JSON аналізатор і послідовник і додає суворий локальний сканер для діагностики після несправностей. Тести значень верхнього рівня, мальформовані пунктуації та обробки номеру описують цей маршрут; вони не історичні джерела.