Как использовать JSONSchema для принятия любого строкового значения объекта, независимо от его ключа? - PullRequest
0 голосов
/ 01 мая 2018

У меня есть система, которая получает сообщения JSON, содержащие метаданные из статического анализа файла. Имена этих полей генерируются динамически из сканирования и могут быть любой допустимой строкой, но значение всегда является допустимой строкой.

, например

{
    "filename": "hello.txt",
    ...
    "meta": {
        "some file property": "any string",
        "some other file property": "another string",
        ...
    }
}

У меня нет возможности узнать, какими будут ключи в meta, до получения сообщения, а также я не знаю, сколько будет ключей. Есть ли способ захвата в JSONSchema, что не имеет значения, какие ключи присутствуют, если их значения всегда являются строками?

1 Ответ

0 голосов
/ 01 мая 2018

Я думаю, что вы ищете additionalProperties

Проверка с помощью «AdditionalProperties» распространяется только на ребенка значения имен экземпляров, которые не соответствуют ни одному из имен в «свойствах», и не соответствуют никаким регулярным выражениям в "patternProperties".

Значением AdditionalProperties может быть схема JSON, например,

...
"additionalProperties" : {
  "type": "string"
}
...

Не стесняйтесь, дайте мне знать, если я что-то пропустил в моем объяснении, или задайте какие-либо дополнительные вопросы.

...