Какие типы данных поддерживает формат JSON?

Ответ

Стандарт JSON (RFC 8259) определяет шесть примитивных типов данных:

  1. String (Строка): Последовательность символов Unicode в двойных кавычках.

    "name": "Анна",
    "comment": "Строка с "экранированными" кавычками"
  2. Number (Число): Целое или число с плавающей запятой. Не поддерживает NaN или Infinity.

    "count": 42,
    "temperature": -10.5,
    "price": 99.95
  3. Boolean (Логический тип): Литералы true или false.

    "active": true,
    "verified": false
  4. Null: Литерал null, представляющий пустое или отсутствующее значение.

    "middleName": null
  5. Array (Массив): Упорядоченный список значений в квадратных скобках []. Значения могут быть разных типов.

    "tags": ["urgent", "backend"],
    "matrix": [[1, 0], [0, 1]]
  6. Object (Объект): Неупорядоченная коллекция пар ключ-значение в фигурных скобках {}. Ключ — всегда строка.

    "address": {
      "city": "Москва",
      "street": "Тверская"
    }

Пример полного JSON-документа:

{
  "id": 101,
  "username": "dev_user",
  "premium": true,
  "score": null,
  "roles": ["editor", "viewer"],
  "settings": {
    "theme": "dark",
    "notifications": false
  }
}

Важно: JSON не поддерживает типы Date, Function или комментарии. Даты обычно передаются как строки в ISO 8601 формате ("2024-01-15T10:30:00Z").

Ответ 18+ 🔞

Так, слушай, а вот этот ваш JSON, блядь, он же как простая штука устроена, ёпта! Всего шесть типов, и нихуя больше, запомнил? Не выдумывай велосипеды.

Вот они, эти шесть китов, на которых всё держится:

  1. Строка (String). Это просто текст в двойных кавычках, и всё. Хочешь кавычки внутри написать — экранируй, падла.

    "name": "Анна",
    "comment": "Строка с "экранированными" кавычками"
  2. Число (Number). Циферки, блядь. Целые, дробные, отрицательные — пожалуйста. Но NaN или Infinity тут не катят, это не по стандарту, ёпта.

    "count": 42,
    "temperature": -10.5,
    "price": 99.95
  3. Булевый тип (Boolean). Всё просто, как три копейки: либо true, либо false. Никаких «может быть» или «наверное», блядь.

    "active": true,
    "verified": false
  4. Null. Вот это null, понимаешь? Значение «ничего нет, ваще нихуя». Не путай с нулём или пустой строкой, это другое.

    "middleName": null
  5. Массив (Array). Упорядоченный список в квадратных скобках. Можешь туда намешать чего угодно — строки, числа, другие массивы, ёбаный зоопарк.

    "tags": ["urgent", "backend"],
    "matrix": [[1, 0], [0, 1]]
  6. Объект (Object). А это, сука, главная фишка! Коллекция «ключ-значение» в фигурных скобках. Ключ — ВСЕГДА строка, запомни это, как «Отче наш», блядь.

    "address": {
      "city": "Москва",
      "street": "Тверская"
    }

Вот тебе полный пример, чтоб глаза на жопу не съехали:

{
  "id": 101,
  "username": "dev_user",
  "premium": true,
  "score": null,
  "roles": ["editor", "viewer"],
  "settings": {
    "theme": "dark",
    "notifications": false
  }
}

И главное, блядь, не пытайся запихнуть в JSON дату, функцию или комментарии — он этого не переварит! Дату гони как строку в формате ISO, типа "2024-01-15T10:30:00Z", и все будут довольны. Вот и вся философия, в рот меня чих-пых!