JSON

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

JSON (JavaScript Object Notation) — властный текстовый формат, предназначенный для описания структуры объектов JavaScript. Однако впоследствии стал использоваться для произвольных данных, которые можно передавать в понятном для машинычей виде. По своей сути — более лёгкая альтернатива схожего по понятиям языка XML.

Описание[править]

Несмотря на присутствие слова JavaScript в названии, JSON по сути своей может использоваться для хранения произвольных данных. Парсеры для этого типа данных существуют почти во всех современных языках программирования. Он включает в себя две универсальные структуры данных, коллекцию пар ключ-значение (реализуемую как объект или ассоциативный массив) и упорядоченный список значений (реализуемый как простой массив).

Поддерживает базовые типы данных: строки (последовательности символов Unicode в двойных кавычках), числа (целые и с плавающей точкой), логические значения (true и false), null (пустое значение), объекты (неупорядоченные коллекции пар ключ-значение в фигурных скобках) и массивы (упорядоченные списки значений в квадратных скобках).

Типичный JSON-документ может содержать вложенные объекты и массивы. Ключи объектов всегда представлены строками, а значения могут быть любого допустимого типа. Синтаксис требует строгого соблюдения правил, надобно использование двойных кавычек для строк, отсутствие завершающих запятых.

Такой формат легко обрабатывается роботычем, но и при этом и человече тот в состоянии заниматься тем же.

Альтернативы[править]

В том же назначении применяются XML и YAML, которые однако сложнее в понимании и написании человеком.

Movax1010h.png Глубокий смысл скрыт в этих неестественных языках
Языки программированияПромышленные: BATC#CC++JavaJavaScript (AJAX) • PascalPerlPHPPythonRubyABAPАссемблерВасикFortran (Профессор)
Эзотерические: BrainFuckHQ9++ErlangForthHaskellLISP (My other car) • PrologTclΤΕΧOracleMySQLGolangВ++ScalaH и Ё+
ПрофессииБыдлокодерПрограммистТестировщикХакерХеллоуворлдщикIT-звёздыПрограммист (существо)Тернарный операторUnreal MCPИсходный кодSingle-Page ApplicationGiteaForgejoCephIDEДжуниор
Методы и стилиReverse EngineeringАнти-паттернВыстрелить себе в ногуГрязный хакКод (индусский) • КостыльМетод научного тыкаПомолясьСвистелки и перделкиОчередьСпортивное программированиеОбфускацияБета-тестАльфа-тестШаблоныRegReplaceФреймворкБыдлокодIndex.phpОхота за жукамиКуМирКлеточный автоматПроцедурное программированиеПоиск файлов в Unix по содержимомуPetoohФункция активации нейронаПерегрузка операторов в PythonЗерокодинг
Средства разработкиSublime TextПодсветка синтаксиса кодаUnstable DiffusionAPIPythonTutorCodeWarsDataCampUnity3DКнижный PythonMallocСвязный списокSOLIDООПУказательNULLWeLang++XenonRecompFuse.jsОптимизацияТестированиеAmbreon866Реверс-инжинирингКроссплатформенностьJSON
ЛюдиИлья КанторЮрий КлючевскийЭдуард ЛаасЭдвард СноуденСеймур Пейперт
Прочее++i + ++iДедлайн%s640 килобайтCMSDummy modeЕГГОГFoobarGod is real, unless explicitly declared as integerGOTOIfconfigKISSRegExpSICPsql.ruXyzzyДискетаИнжалид дежицеКОИ-8ЛогМанРекурсияСУБДТест ТьюрингаУмение разбираться в чужом кодеФаза ЛуныФатальный недостатокПроблема 2000ТаймстампКэшЗапись в файл без кэша (Perl)Танцы с бубномКодачХукCurl cffiВибе-кодингFlutterАппликативный оператор