Я создаю схему JSON и использую https://tonicdev.com/npm/ajv для проверки схемы по некоторым данным. Я не могу разместить здесь код из-за конфиденциальности компании, поэтому постараюсь описать проблему:
У меня есть 3 поля ввода, первое - это селектор (строка), второе - раскрывающийся список оператора (равно, не равно, in, ni и т. Д.), А третье - поле ввода, содержащее значение.
Идея состоит в том, чтобы иметь такую структуру «селектор: оператор: значение». Чтобы прояснить ситуацию, предположим, что у нас есть этот JSON, и представьте, что у нас есть три селектора переменных, оператор и значение в виде схемы (идея состоит в том, чтобы получить эти значения из полей ввода, упомянутых выше, и создать схему).
const currentData = {
"properties": {
"id": "one",
"string": 'some string...'
}
}
и мне нужно определить схему
const schema = {
"properties": {
[selector]: {"type": "string"},
[operator]: {"type":"string"},
[value]: {"type": string}
}
}
Если я заполню поля с помощью say (selector: id Operator: Equal value: "one"), он должен пройти проверку, но если я скажу (selector: id Operator: Equal value: 1), он не должен пройти.
Эта схема неверна. Есть идеи, как это определить?