Tenemos este borrador de esquema json . Me gustaría obtener una muestra de mis datos JSON y generar un esqueleto para el esquema JSON, que pueda volver a trabajar manualmente, agregando cosas como descripción, requerido, etc., que no pueden deducirse de los ejemplos específicos.
Por ejemplo, desde mi entrada example.json
:
{
"foo": "lorem",
"bar": "ipsum"
}
Ejecutaría mi herramienta json_schema_generator y obtendría:
{ "foo": {
"type" : "string",
"required" : true,
"description" : "unknown"
},
"bar": {
"type" : "string",
"required" : true,
"description" : "unknown"
}
}
Este ejemplo se ha codificado manualmente, por lo que puede tener errores. ¿Existe alguna herramienta que pueda ayudarme con la conversión JSON -> esquema JSON?
json
validation
reflection
jsonschema
blueFast
fuente
fuente
Respuestas:
Quizás estés buscando esto:
http://www.jsonschema.net
Es una herramienta en línea que puede generar automáticamente un esquema JSON a partir de una cadena JSON. Y puede editar el esquema fácilmente.
fuente
{"hello": "world","num": 42}
pero parece prometedor-Resumiendo las otras respuestas, aquí están los generadores de esquemas JSON propuestos hasta ahora:
En línea:
Pitón:
NodoJS:
Rubí:
fuente
setup.py
GenSON ( PyPI | Github ) es un generador de esquemas JSON que puede generar un solo esquema a partir de múltiples objetos. También puede fusionar esquemas con él. Está escrito en Python y viene con una herramienta CLI.
(Divulgación completa: soy el autor).
fuente
Al ver que esta pregunta está recibiendo muchos votos positivos, agrego nueva información (no estoy seguro de si es nueva, pero no pude encontrarla en ese momento)
fuente
Después de varios meses, la mejor respuesta que tengo es mi herramienta simple. Es crudo pero funcional.
Lo que quiero es algo similar a esto . Los datos JSON pueden proporcionar un esqueleto para el esquema JSON. Todavía no lo he implementado, pero debería ser posible proporcionar un esquema JSON existente como base, para que el esquema JSON existente más los datos JSON puedan generar un esquema JSON actualizado. Si no se proporciona dicho esquema como entrada, se toman valores completamente predeterminados.
Esto sería muy útil en el desarrollo iterativo: la primera vez que se ejecuta la herramienta, el esquema JSON es ficticio, pero se puede refinar automáticamente de acuerdo con la evolución de los datos.
fuente
Hay una herramienta de Python para generar el esquema JSON para un JSON dado: https://github.com/perenecabuto/json_schema_generator
fuente
draft-03
.generate-schema
( NPM | Github ) toma un objeto JSON que genera esquemas a partir de él, una salida es JSON Schema, está escrito en Node.js y viene con una herramienta REPL y ClI para canalizar archivos.Divulgación completa: soy el autor :)
fuente
Hay una herramienta nodejs que admite json schema v4 en https://github.com/krg7880/json-schema-generator
Funciona como una herramienta de línea de comandos o como una biblioteca de nodejs:
fuente
json-schema-generator es un generador de esquemas JSON basado en Ruby. Es compatible con los borradores 3 y 4 del esquema JSON. Se puede ejecutar como un ejecutable independiente o se puede incrustar dentro de un script Ruby.
Entonces puede usar json-schema para validar muestras JSON contra su esquema recién generado si lo desea.
fuente
Para las herramientas fuera de línea que admiten múltiples entradas, lo mejor que he visto hasta ahora es https://github.com/wolverdude/GenSON/ Me gustaría ver una herramienta que tome nombres de archivos en la entrada estándar porque tengo miles de archivos . Sin embargo, me quedo sin descriptores de archivo abiertos, así que asegúrese de que los archivos estén cerrados . También me gustaría ver los generadores de esquemas JSON que manejan la recursividad. Ahora estoy trabajando en generar clases Java a partir de objetos JSON con la esperanza de ir al esquema JSON desde mis clases Java. Aquí está mi script GenSON si tiene curiosidad o desea identificar errores en él.
fuente
Se mencionan muchas herramientas, pero una más llamada inferencia de esquema JSON para el registro:
https://github.com/rnd0101/json_schema_inferencer
(no es una biblioteca o un producto, sino un script de Python)
Con la divulgación completa habitual: soy el autor.
fuente
Para node.js> 6.0.0 también existe el módulo json-schema-by-example .
fuente