Проект схемы JSON4 Схема VS JSON draft3

Каковы функции, присутствующие в проекте схемы 4, которые не указаны в схеме схемы JSON 3, созданной IETF?

Ответы

Ответ 1

Из журналов изменений:

Новые ключевые слова

  • anyOf (сопоставьте хотя бы одну схему в массиве схемы),
  • allOf (соответствует всем схемам в массиве схемы),
  • oneOf (соответствует только одной схеме в массиве схемы),
  • нет (не соответствуют схеме),
  • multipleOf (заменяет divisibleBy),
  • minProperties и maxProperties (минимальное и максимальное количество членов в экземпляре объекта),
  • (стандартизованный контейнер для встроенных подсхем).

Удалено:

  • Disallow
  • расширяет
  • divisbleBy

Изменено в функциональности:

Тип

  • Когда значение представляет собой массив, схемы больше не разрешены как элементы. Кроме того, массив должен иметь хотя бы один элемент.

До


{
    "type": [ "string", { "other": "schema" } ]
}

Теперь


{
   "anyOf": [
       { "type": "string" },
       { "other": "schema" }
    ]
}

Обязательно

  • Раньше это был атрибут подсхемы в свойствах. Теперь это ключевое слово первого уровня, играющее ту же роль, и в качестве аргумента имеет строковый массив.

До


{
    "properties": {
        "p": {
            "type": "string",
            "required": true
        },
        "q": {
            "type": "string",
            "required": true
        }
    }
}

Теперь


{
    "properties": {
        "p": { "type": "string" },
        "q": { "type": "string" }
    },
    "required": [ "p", "q" ]
}

Зависимости

  • Одна строка в зависимостях свойств больше не разрешена, разрешены только массивы

До


{
    "dependencies": { "a": "b" }
}

Теперь


{
    "dependencies": { "a": [ "b" ] }
}

Ответ 2

Если вы заинтересованы в глубоком погружении, вы можете просмотреть разницу между двумя черновиками на сайте IETF.

Однако, если вы ищете более простое резюме изменений, Geraint Luff и Francis Galiegue создали страницу изменений в проекте github wiki который перечисляет изменения, добавления и удаления.