Есть ли различия между следующими двумя валидациями JSON-схем или они проверяют одну и ту же структуру данных?
SomeProperty { "type": ["integer","string"] }
SomeProperty { "anyOf": [ { "type": "integer" }, { "type": "string" } ] }
Они эквивалентны!
type
Значение этого ключевого слова ДОЛЖНО быть либо строкой, либо массивом. Если оно является массивом, элементы массива ДОЛЖНЫ быть строками и ДОЛЖНЫ быть уникальными. Строковые значения ДОЛЖНЫ быть одним из шести типов примитивов («ноль», "логическое значение", "объект", "массив", "число" или "строка") или "целое число" который соответствует любому числу с нулевой дробной частью. Экземпляр проверяется тогда и только тогда, когда экземпляр находится в любом из наборы, перечисленные для этого ключевого слова.
Значение этого ключевого слова ДОЛЖНО быть либо строкой, либо массивом. Если оно является массивом, элементы массива ДОЛЖНЫ быть строками и ДОЛЖНЫ быть уникальными.
Строковые значения ДОЛЖНЫ быть одним из шести типов примитивов («ноль», "логическое значение", "объект", "массив", "число" или "строка") или "целое число" который соответствует любому числу с нулевой дробной частью.
Экземпляр проверяется тогда и только тогда, когда экземпляр находится в любом из наборы, перечисленные для этого ключевого слова.
https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.1.1
Обратите внимание на последний раздел "... в любом из ..."