Что такое JSON — Введение

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


JSON или JavaScript Object Notation — текстовый формат обмена данными, основанный на JavaScript. Но при этом он может использоваться в любом языке программирования. Формат был разработан Дугласом Крокфордом.

JSON используется в REST API. Также в качестве альтернативы можно использовать XML, но разработчики больше предпочитают именно JSON, так как он более читабельный и меньше весит.

Как устроен JSON

В качестве значений в JSON могут быть использоваться:

  • числа;
  • строки;
  • массивы;
  • JSON-объекты;
  • литералы (логические значения true, false и null).

С простыми значениями не возникнет никаких трудностей. Разберём массивы и JSON-объекты, ведь, по сути, придётся работать именно с ними.

JSON-объект

JSON-объект — это неупорядоченное множество пар «ключ:значение», заключённых в фигурные скобки { }  и взаимодействие с ним проходит, как со словарем.

Ключ — это название параметра (свойства), который мы передаём серверу. Он служит маркером для принимающей запрос системы, чтобы она поняла, что мы ей отправили.

Давайте рассмотрим простой пример:

{    "name": "John",    "age": 26  }  

Мы передали значение "John" с ключом "name", чтобы получить это свойство, нужно обратиться по его ключу, без которого сделать это было бы невозможно.

Интенсив «Мессенджер на Python за 3 дня»

Интенсив «Мессенджер на Python за 3 дня»

31 января – 2 февраля, Онлайн, Беcплатно

tproger.ru

События и курсы на tproger.ru

Значение может быть не только строкой или числом. Это может быть и другой объект! Или массив, или объект в массиве, массив в объекте… Абсолютно любое количество уровней вложенности!

Если мы говорим о параметрах, то в кавычки помещаются только строки, все остальное — нет.

Переносы строк делать необязательно. Вообще пробелы и переносы нужны только человеку для читабельности, система поймёт и без них.

Например, мы можем записать JSON-объект таким образом, и это тоже будет правильно:

{"name": "John","age": 26}


Ключ 
— ВСЕГДА строка, и мы в любом случае берём его в кавычки.

Ключи могут быть записаны в любом порядке, ведь, JSON-объект — это неупорядоченное множество пар «ключ:значение».

Если я хочу обратиться к "name", как мне это сказать? В Python есть два варианта это сделать:

  1. Получить значение с помощью метода get().
  2. Получить значение по ключу.

get() vs dict[key]

Разница между этими вариантами заключается в том, что если вы обратитесь к ключу, которого нет, то получите ошибку KeyError.

person = {    "name": "John",    "age": 26  }  print(person[“last_name”])  >>> KeyError Traceback (most recent call last)  >>> KeyError: 'last_name'  

Но если воспользуетесь методом get(), то получите пустое значение:

last_name = person.get("last_name")  print(type("last_name"))  >>> NoneType

Также у этого метода есть второй передаваемый аргумент, который будет предаваться если ключа нет:

last_name = person.get("last_name", "There is no last_name")  print(last_name)  >>> 'There is no last_name'

JSON-массив

Массив заключен в квадратные скобки [ ].

["MALE", "FEMALE"]

Внутри квадратных скобок идет набор значений, разделённых запятыми. Здесь нет ключей, как в объекте, поэтому обращаться к массиву можно только по номеру элемента. И поэтому в случае массива менять местами данные внутри нельзя. Это упорядоченное множество значений, так что порядок важен.

Значения

Внутри массива могут быть любые значения:

  • Цифры;
[1, 5, 10, 33]
  • Строки;
["MALE", "FEMALE"]
  • Литералы;
[true, false]
  • Массивы;
["MALE", "FEMALE", [1, 5, 10, 33]]
  • Объекты;
[1, {a:1, b:2}, "John"]
  • Смесь.
[1, "John", true, [1, 5, 10, 33], {"a": 1, "b": 2}]

Well Formed JSON

JSON должен быть well formed, то есть синтаксически правильный.

Правила well formed JSON:

  1. Данные написаны в виде пар «ключ:значение»
  2. Данные разделены запятыми
  3. Объект находится внутри фигурных скобок { }
  4. Массив — внутри квадратных [ ]

Чтобы проверить JSON на синтаксис, можно использовать любой JSON Validator. Я использую JSON Formatter, он не только проверяет корректность синтаксиса, но и форматирует JSON в читабельный визуальный формат!

Из этого:

{"name": "John", "age": 26, "is_married": false, "children": { "name": "Julia", "age": null},"skills": ["Python", "Git", "Django", "Linux"]}

Он сделает вот это:

{    "name": "John",    "age": 26,    "is_married": false,    "children": {      "name": "Julia",      "age": null    },    "skills": [      "Python",      "Git",      "Django",      "Linux"    ]  }

Итого

JSON (JavaScript Object Notation) — текстовый формат обмена данными, основанный на JavaScript, но может использоваться в любом языке программирования. Легко читается человеком и машиной. Часто используется в REST API (чаще, чем XML из-за лучшей читабельности и меньшего веса).

Корректные значения JSON:

  1. JSON-объект — неупорядоченное множество пар «ключ:значение», заключённое в фигурные скобки { };
  2. массив — упорядоченный набор значений, разделённых запятыми. Находится внутри квадратных скобок [ ];
  3. число (целое или вещественное);
  4. литералы true (логическое значение «истина»), false (логическое значение «ложь») и null;
  5. строка.

JavaScript

JSON

Python

Пост пользователя


Источник: tproger.ru

Комментарии: