Проверка схемы JSON с использованием javascript + tv4

Я пытаюсь проверить схему JSON с помощью TV4.

Моя проверка использует иерархический JSON и основана на этом базовом пример:

var data = {
    "foo": "bar"
};

var schema = {
    "type": "object",
    "properties": {
        "foo": {
            "type": "string"
        }
    },
    "required": ["foo"]
};

var result = tv4.validateResult(data, schema);

В своем тесте я хочу добавить еще один уровень иерархии:

 var data = {
        "foo": {
           "test": "bar"
        }
    };

    var schema = {
        "type": "object",
        "properties": {
            "foo": {
                    "test": {
                       "type": "string"
                     }
            }
        },
        "required": ["foo"]
    };

    var result = tv4.validateResult(data, schema);

Эта проверка не работает (если я помещаю целое число вместо строки, он передает проверка)

Что я здесь делаю не так?


person Yaniv Efraim    schedule 25.02.2014    source источник


Ответы (2)


Отказ от ответственности: я никогда раньше не использовал TV4.

Я предполагаю, что схема должна указывать свойство foo как object со свойством string ... Что-то вроде:

{
    "type": "object",
    "properties": {
        "foo": {
            "properties": {
                "test": {
                   "type": "string"
                 }
            },
            "type": "object"
        }
    },
    "required": ["foo"]
}
person RobH    schedule 25.02.2014
comment
Tnx, я сам разобрался, но ваш ответ правильный (принимаю ваш ответ) - person Yaniv Efraim; 25.02.2014

Быстро взглянув на этот вопрос на форуме, я понял что мне не хватает атрибута "свойства" для поддерева. Теперь это будет work (если значение является целым числом, проверка не пройдёт.

person Yaniv Efraim    schedule 25.02.2014