Guía del esquema JSON
Antes de entrar en JSON Schema, es importante conocer la diferencia entre JSON y JSON Schema.
JSON
JSON es la abreviatura de JavaScript Object Notation, y es un formato de datos independiente del idioma que utilizan las API para enviar solicitudes y respuestas. JSON es fácil de leer y escribir tanto para personas como para máquinas. JSON es un formato basado en texto que no está vinculado al idioma (independiente del idioma).
Esquema JSON
JSON Schema es una herramienta útil para verificar la estructura de datos JSON. Para especificar la estructura de JSON, utilice un formato basado en JSON. Su propósito es garantizar que los datos JSON sean aceptables. La convención para los datos JSON de nuestra aplicación se puede definir usando schema.
Hay tres secciones principales en la especificación del esquema JSON:
Hiperesquema JSON:
JSON Hyper-Schema es un lenguaje de esquema JSON que se puede usar para etiquetar documentos JSON con hipervínculos e instrucciones para procesar y cambiar recursos JSON externos a través de entornos basados en texto como HTTP. Hacer clic esta página para obtener más información sobre JSON Hyper-Schema.
Núcleo del esquema JSON:
Es un conjunto de reglas para etiquetar y validar documentos JSON.
Núcleo del esquema JSON:
- Describe el formato de datos que tiene actualmente.
- Valida los datos que se pueden utilizar en las pruebas automatizadas.
- Asegurar la veracidad de los datos proporcionados por los clientes.
- Proporciona documentación legible tanto para humanos como para máquinas.
Validación del esquema JSON:
La validación basada en JSON Schema impone límites en la estructura de los datos de instancia. Después de eso, cualquier palabra clave que no tenga aserción información, como metadatos descriptivos e indicaciones de uso, se agregan a una posición de instancia que cumple con todas las restricciones declaradas.
La herramienta JSON Schema Validator de Newtonsoft es una herramienta que puede usar directamente en su navegador, de forma gratuita. Puede usar esta herramienta para probar la estructura de su esquema JSON. Esta página contiene controles y explicaciones para que pueda comenzar. De esa manera, es fácil ver cómo mejorar su estructura JSON.
Podemos verificar nuestro objeto JSON usando la herramienta de validación de esquemas JSON:
Tenemos validación de edad (mínimo = 20 y máximo = 40) como se muestra en la figura anterior. No se encontraron errores.
Mostraba un error si la validación de edad se ingresaba incorrectamente.
La creación de un esquema JSON
Veamos un ejemplo de JSON Schema para ver de qué estamos hablando. Un objeto JSON básico que describe un catálogo de productos es el siguiente:
Su esquema JSON podría escribirse de la siguiente manera:
Un esquema JSON es un documento JSON, y ese documento DEBE ser un objeto. Las palabras clave son miembros/atributos de objetos especificados por el esquema JSON. Las "palabras clave" en el esquema JSON se refieren a la parte "clave" de una combinación clave/valor en un objeto. Escribir un esquema JSON implica asignar una "palabra clave" particular a un valor dentro de un objeto en su mayor parte.
Echemos un vistazo más de cerca a las palabras clave que usamos en nuestro ejemplo:
El esquema JSON con el que cumple el esquema del recurso se escribe mediante este atributo. Este esquema está escrito siguiendo el estándar drafts v4, como se especifica en el "$ esquema” palabra clave. Esto evita que su esquema vuelva a la versión actual, que puede o no ser compatible con versiones anteriores.
La "título y descripción” las palabras clave son solo explicativas; no imponen ninguna limitación a los datos que se comprueban. Estas dos palabras clave describen el propósito del esquema: describe un producto.
La "tipo” palabra clave define la primera condición límite de nuestros datos JSON; debe ser un objeto JSON. Si no configuramos el tipo para todos los esquemas, el código no funcionaría. Algunos tipos comunes son “número”, “booleano”, “entero”, “nulo”, “objeto”, “matriz”, “cadena”.
JSON Schema es compatible con las siguientes bibliotecas:
Idioma | Biblioteca |
C | Elemento WJE |
Python | jschon |
PHP | Opis Esquema Json |
JavaScript | ajv |
Go | esquema de gojson |
Kotlin | validador de medeia |
Rubí | JSONSchemer |
JSON (Sintaxis)
Echemos un breve vistazo a la sintaxis fundamental de JSON. La sintaxis JSON es un subconjunto de la sintaxis JavaScript que incluye los siguientes elementos:
- Se utilizan pares de nombre/valor que representan datos.
- Los objetos se mantienen entre llaves y cada nombre va encabezado por un ':' (dos puntos), con pares de valores separados por “,” (coma).
- Los valores están separados por “,” (coma) y las matrices se mantienen entre corchetes.
Las dos estructuras de datos siguientes son compatibles con JSON:
- Lista ordenada de valores: Puede ser una matriz, una lista o un vector.
- Colección de pares de nombre/valor: Diferentes lenguajes de programación soportan esta estructura de datos.
JSON (Objeto)
Un esquema JSON es un objeto JSON que describe el tipo y la estructura de un objeto JSON diferente. Una expresión de objeto de JavaScript puede representar un objeto JSON en entornos de tiempo de ejecución de JavaScript. Algunos ejemplos de objetos de esquema válidos son los siguientes:
Esquema | Cerillas |
{} | algún valor |
{ tipo: 'objeto' } | un objeto JavaScript |
{ teclea un número' } | un número JavaScript |
{ tipo: 'cadena'} | una cadena JavaScript |
P.ej:
Haciendo un nuevo objeto que está vacío:
varJSON_Obj = {};
Creación de nuevos objetos:
var JSON_Obj = nuevo objeto()
JSON (Comparación con XML)
JSON y XML son formatos legibles por humanos independientes del lenguaje. En escenarios del mundo real, pueden crear, leer y decodificar. Según los siguientes criterios, podemos comparar JSON con XML.
Complejidad
Debido a que XML es más complejo que JSON, los programadores prefieren JSON.
Uso de matrices
XML se utiliza para expresar datos estructurados; sin embargo, XML no admite matrices, pero JSON sí.
Parsing
JSON se interpreta usando la función eval de JavaScript. eval devuelve el objeto descrito cuando se usa con JSON.
Ejemplo:
JSON | XML |
{ “empresa”: Ferrari, “nombre”: “GTS”, “precio”: 404000 } |
ferrari
GTS
404000
|
Ventajas del esquema JSON
JSON está diseñado para desviarse en un lenguaje legible por humanos y máquinas. Sin embargo, sin algunos ajustes, no puede ser ninguna de las dos cosas. JSON Schema tiene la ventaja de hacer que JSON sea más comprensible tanto para las máquinas como para los humanos.
El uso de JSON Schema también elimina la necesidad de varias actualizaciones del lado del cliente. Hacer una lista de códigos HTML comunes y luego implementarlos en el lado del cliente es un método típico pero inexacto para construir código del lado del cliente. API aplicaciones Sin embargo, esta no es la mejor estrategia porque los cambios en el lado del servidor pueden causar que ciertas funcionalidades no funcionen correctamente.
La principal ventaja de JSON Schema es su compatibilidad con una variedad de lenguajes de programación, así como la precisión y consistencia de la validación.
El esquema JSON es compatible con una amplia gama de navegadores y sistemas operativos, por lo tanto, las aplicaciones escritas en JSON no requieren mucho esfuerzo para que sean compatibles con todos los navegadores. Durante el desarrollo, los desarrolladores consideran varios navegadores, aunque JSON ya tiene las capacidades.
JSON es la forma más eficiente de compartir datos de cualquier tamaño, incluidos audio, video y otros medios. Esto se debe al hecho de que JSON almacena datos en matrices, lo que facilita la transmisión de datos. Como resultado, JSON es el mejor formato de archivo para desarrollo y API en línea.
A medida que las API se vuelven más comunes, es lógico suponer que la validación y las pruebas de API serán cada vez más importantes. También es realista esperar que JSON no se vuelva mucho más simple a medida que pasa el tiempo. Esto implica que tener un esquema para sus datos solo se volverá más crítico a medida que pase el tiempo. Debido a que JSON es el formato de archivo estándar para trabajar con API, JSON Schema es un buen sustituto para aquellos que trabajan con API.