validator validate valid tutorial online example español json jsonschema

tutorial - validate json vs schema



Solo permite propiedades que están declaradas en el esquema JSON (3)

Estoy usando json-schema y quiero permitir que solo las propiedades declaradas en este archivo pasen la validación. Por ejemplo, si un usuario pasa una propiedad de "nombre" en su objeto json, este esquema no se publicará porque "nombre" no figura aquí como una propiedad.

¿Hay alguna función similar a "requerida" que solo permita que pasen las propiedades enumeradas?

{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "Accounting Resource - Add Item", "type": "object", "properties": { "itemNumber": { "type":"string", "minimum": 3 }, "title": { "type":"string", "minimum": 5 }, "description": { "type":"string", "minimum": 5 } }, "required": [ "itemNumber", "title", "description" ]

}


Creo que lo que debes hacer para lograr esto es establecer propiedades additionalProperties en falso. Vea la especificación here


Para su información, parece que v5 de la norma describirá un modo de validación de "prohibición de propiedades desconocidas" .

Entonces, en lugar de hacer que este requisito forme parte del formato (que, como dice Chris Pitman en los comentarios, daña la extensibilidad futura), simplemente puede indicarle a su validador que marque propiedades desconocidas como errores. Entonces, es como un modo de validación súper estricto que es útil para el desarrollador.

Algunos validadores ya soportan esto (por ejemplo, tv4 ):

var result = tv4.validateMultiple(data, schema, checkRecursive, banUnknownProperties);

Con esta herramienta, se debe usar checkRecursive si sus datos pueden tener referencias circulares, y banUnknownProperties hará exactamente lo que quiera, sin tener que usar "additionalProperties":false .