tutorial - Herramienta para generar el esquema JSON a partir de datos JSON
json schema validator java (13)
Al ver que esta pregunta está recibiendo algunos upvotes, agrego nueva información (no estoy seguro de si esto es nuevo, pero no pude encontrarlo en ese momento)
- El hogar de JSON Schema
- Una implementación de la validación del esquema JSON para Python
- discussion noticias relacionadas con hackers
- https://github.com/perenecabuto/json_schema_generator , que es lo que estaba buscando.
Tenemos este draft 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 de forma manual, agregando cosas como descripción, requerida, etc., que no se pueden deducir de los ejemplos específicos.
Por ejemplo, desde mi ejemplo de example.json
:
{
"foo": "lorem",
"bar": "ipsum"
}
Dirí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 ha sido codificado manualmente, por lo que tiene quizás errores. ¿Hay alguna herramienta que pueda ayudarme con el esquema de conversión JSON -> JSON?
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 https://github.com/gonvaled/jskemator . Los datos JSON pueden proporcionar un esqueleto para el esquema JSON. No lo he implementado todavía, pero debería ser posible dar 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 da ese 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 puede refinarse automáticamente según la evolución de los datos.
Es posible que esté buscando esto:
Es una herramienta en línea que puede generar automáticamente el esquema JSON a partir de la cadena JSON. Y puede editar el esquema fácilmente.
Hay una herramienta de python para generar el esquema JSON para un JSON determinado: https://github.com/perenecabuto/json_schema_generator
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 nodejs:
var jsonSchemaGenerator = require(''json-schema-generator''),
obj = { some: { object: true } },
schemaObj;
schemaObj = jsonSchemaGenerator(json);
Para las herramientas fuera de línea que admiten entradas múltiples, lo mejor que he visto hasta ahora es Github Me gustaría ver una herramienta que tome los nombres de archivo en la entrada estándar porque tengo miles de archivos . Sin embargo, me quedo sin descriptores de archivos abiertos, así que asegúrese de que los archivos estén cerrados . También me gustaría ver generadores JSON Schema que manejen la recursión. Ahora estoy trabajando en la generación de clases Java desde objetos JSON con la esperanza de ir al esquema JSON de mis clases de Java. Aquí está mi script GenSON si tiene curiosidad o quiere identificar errores en él.
#!/bin/sh
ulimit -n 4096
rm x3d*json
cat /dev/null > x3d.json
find ~/Downloads/www.web3d.org/x3d/content/examples -name ''*json'' - print| xargs node goodJSON.js | xargs python bin/genson.py -i 2 -s x3d.json >> x3d.json
split -p ''^{'' x3d.json x3d.json
python bin/genson.py -i 2 -s x3d.jsonaa -s x3d.jsonab /Users/johncarlson/Downloads/www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter02-GeometryPrimitives/Box.json > x3dmerge.json
Para node.js> 6.0.0 también existe el módulo json-schema-by-example .
Resumiendo las otras respuestas, aquí están los generadores de esquema JSON propuestos hasta ahora:
En línea:
- http://www.jsonschema.net (1 entrada)
- https://easy-json-schema.github.io (1 entrada)
Pitón:
- https://github.com/gonvaled/jskemator (1 entrada pero permite la iteración)
- https://github.com/perenecabuto/json_schema_generator (1 entrada)
- https://github.com/rnd0101/json_schema_inferencer (1 entrada, creo)
- https://pypi.python.org/pypi/genson/ (entradas múltiples)
- https://pypi.python.org/pypi/skinfer (entradas múltiples)
NodeJS:
- https://github.com/Nijikokun/generate-schema (1 entrada?)
- https://github.com/easy-json-schema/easy-json-schema (1 entrada)
Rubí:
- https://github.com/maxlinc/json-schema-generator (1 entrada)
Se mencionan muchas herramientas, pero una más se llama JSON Schema inferencer 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.
También hay https://pypi.python.org/pypi/skinfer , que puede inferir el esquema de una lista de muestras, encontrando qué campos son opcionales. También puede combinar esquemas.
Se puede usar como un script o como una biblioteca de Python, vea más en: https://skinfer.readthedocs.org
https://github.com/maxlinc/json-schema-generator es un generador de esquemas JSON basado en Ruby. Admite los borradores 3 y 4 del esquema JSON. Se puede ejecutar como un ejecutable independiente, o se puede incrustar dentro de un script de Ruby.
Luego puede usar json-schema para validar muestras JSON contra su esquema recién generado si lo desea.
generate-schema
( NPM | https://github.com/Nijikokun/generate-schema ) toma un objeto JSON genera esquemas a partir de él, una salida es esquema JSON, está escrita en Node.js y viene con una herramienta REPL y ClI para canalizar archivos.
Divulgación completa: soy el autor :)