JSON, способ представления данных в JavaScript, распространился далеко за пределы своего скромного происхождения и теперь получил официальную награду стандарта ECMA.
JSON — объектная нотация JavaScript — это настолько простая идея, что, как только вы ее увидели, кажется, нет причин не использовать ее или искать что-то более сложное. Первоначально он был определен и популяризирован Дугласом Крокфордом. Однако до сих пор единственным относящимся к нему стандартом был RFC 4627.
Основная идея JSON — упаковать данные в виде объекта JavaScript. Например:
{«FirstName»: «Дуглас», «lastName»: «Крокфорд»}
Это можно рассматривать как абстрактную разметку, как, например, XML, или ее можно читать как полностью функционирующий объект JavaScript, который может быть создан с помощью функции Eval. Конечно, большая проблема заключается в том, что если JSON получен из ненадежного источника, он может содержать методы JavaScript, а также свойства, что является потенциальной проблемой безопасности. Чтобы предотвратить это, JSON idoes не позволяет вам использовать только любой объект JavaScript, который вы хотите создать, но определяет ограниченный набор, который позволяет создавать статические структуры данных.
В JSON вы можете иметь числовые, строковые и логические значения. Вы также можете иметь массивы и объекты. Вы также можете использовать null, чтобы указать отсутствие данных. Это довольно ограничительно, но обычно более чем достаточно для кодирования данных, которые будут последовательно отправляться через соединение или возвращаться через API и т. Д.
Новый стандарт ECMA — это номер 404, значение, которое вызвало опасения, что это может быть своего рода тщательно продуманная шутка — 404 — это хорошо известная HTTP-ошибка Page not found. Он формализует ограничения и расширения JSON по сравнению с собственным JavaScript. Идея состоит в том, что вы можете проанализировать JSON, чтобы убедиться, что он действителен, а затем использовать его, не беспокоясь о проблемах безопасности.
На практике, конечно, в течение некоторого времени мы могли делать это в JavaScript, используя объект JSON, либо изначально предоставляемый в браузере, либо через библиотеку. Стандарт также важен для растущей поддержки JSON на языках, отличных от JavaScript, где нотация изначально не поддерживается.
За очень короткое время JSON обогнал XML в качестве стандартной разметки данных для Интернета. В сочетании с Ajax и REST он также обогнал слишком сложный вызов удаленной процедуры SOAP.