со схемой JSON я могу проверить объект, но могу ли я его очистить? Например, у меня есть схема
const s = {
"type": "object",
"properties": {
"p1": {"type": "string"}
}
}
И Object const o = {p1: 345, p_not_is_schema: '3333'}, тогда я делаю что-то вроде const oClean = schemaProcessor.clean(o, s) и получаю объект от o, который подходит к схеме s {p1: '345'}?
возможно, попробуйте jsonschema значения по умолчанию
@AVAVT Мне не нужна типизация :)
Опция removeAdditionalайв делает это.
@str спасибо = ) Я подумал, что это должно быть реализовано по-другому, без мутации объекта )
Мне не нравится такой способ сделать это, хотя он был бы наиболее эффективным. Вы можете сделать копию своих данных, прежде чем передавать их через функцию проверки с включенной этой опцией. Тем не менее, мне, вероятно, придется предложить вам написать собственную функцию для этого! ajv предоставляет возможность добавлять свои собственные ключевые слова и делать что-то на их основе, но я не совсем уверен, что вы этого хотите. Предполагая, что ваши схемы имеют глубину только одного объекта, не составит большого труда написать для этого собственный код.
@Relequestual тявп, это все правда, но 1) это только пример, у меня может быть много уровней 2) я просто подумал, что это очень распространенная проблема и кто-то уже это сделал = )
К сожалению для вас, это не обычное использование схемы JSON. Схема JSON в основном используется для проверки JSON. Вы можете использовать additionalProperties false, чтобы предотвратить дополнительные свойства, но тогда источник JSON должен будет соответствующим образом изменить свой JSON.
Вы МОЖЕТЕ использовать обратную связь проверки, чтобы удалить биты JSON, используя предоставленные пути, а затем попытаться повторно проверить =]
@Relequestual хм, это самый быстрый способ очистить документы, поступающие от другой службы или клиента, перед тем, как поместить их в хранилище документов. Конечно, мы можем использовать модели и т. д., но это слишком много кода =)
Самый быстрый способ — отвергнуть все, что не соответствует вашей схеме!
@Relequestual и каждый раз получаешь ошибку, когда служба решила добавить новый ключ? )
Давайте продолжить обсуждение в чате.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я думаю, вы могли бы попробовать Машинопись