Nous avons ce brouillon de schéma json . Je voudrais obtenir un échantillon de mes données JSON et générer un squelette pour le schéma JSON, que je peux retravailler manuellement, en ajoutant des éléments tels que la description, requis, etc., qui ne peuvent pas être déduits des exemples spécifiques.
Par exemple, d'après mon entrée example.json
:
{
"foo": "lorem",
"bar": "ipsum"
}
Je lancerais mon outil json_schema_generator et obtiendrais:
{ "foo": {
"type" : "string",
"required" : true,
"description" : "unknown"
},
"bar": {
"type" : "string",
"required" : true,
"description" : "unknown"
}
}
Cet exemple a été codé manuellement, il comporte donc peut-être des erreurs. Existe-t-il un outil qui pourrait m'aider avec la conversion JSON -> schéma JSON?
json
validation
reflection
jsonschema
blueFast
la source
la source
Réponses:
Vous recherchez peut-être ceci:
http://www.jsonschema.net
C'est un outil en ligne qui peut générer automatiquement un schéma JSON à partir d'une chaîne JSON. Et vous pouvez facilement modifier le schéma.
la source
{"hello": "world","num": 42}
mais semble prometteur-Pour résumer les autres réponses, voici les générateurs de schéma JSON proposés jusqu'à présent:
En ligne:
Python:
NodeJS:
Rubis:
la source
setup.py
GenSON ( PyPI | Github ) est un générateur de schéma JSON qui peut générer un schéma unique à partir de plusieurs objets. Vous pouvez également fusionner des schémas avec lui. Il est écrit en Python et est livré avec un outil CLI.
(Divulgation complète: je suis l'auteur.)
la source
Voyant que cette question reçoit pas mal de votes positifs, j'ajoute de nouvelles informations (je ne sais pas si c'est nouveau, mais je ne l'ai pas trouvée à l'époque)
la source
Après plusieurs mois, la meilleure réponse que j'ai est mon outil simple. C'est brut mais fonctionnel.
Ce que je veux, c'est quelque chose de similaire à ça . Les données JSON peuvent fournir un squelette pour le schéma JSON. Je ne l'ai pas encore implémenté, mais il devrait être possible de donner un schéma JSON existant comme base, afin que le schéma JSON existant plus les données JSON puissent générer un schéma JSON mis à jour. Si aucun schéma de ce type n'est donné en entrée, des valeurs par défaut sont prises.
Cela serait très utile dans le développement itératif: la première fois que l'outil est exécuté, le schéma JSON est factice, mais il peut être affiné automatiquement en fonction de l'évolution des données.
la source
Il existe un outil python pour générer un schéma JSON pour un JSON donné: https://github.com/perenecabuto/json_schema_generator
la source
draft-03
.generate-schema
( NPM | Github ) prend un objet JSON génère des schémas à partir de celui-ci, une sortie est JSON Schema, il est écrit en Node.js et est livré avec un outil REPL et ClI pour acheminer les fichiers vers.Divulgation complète: je suis l'auteur :)
la source
Il existe un outil nodejs qui prend en charge le schéma json v4 à l' adresse https://github.com/krg7880/json-schema-generator
Cela fonctionne soit comme un outil de ligne de commande, soit comme une bibliothèque nodejs:
la source
générateur de schéma json est un générateur de schéma JSON basé sur Ruby. Il prend en charge les brouillons 3 et 4 du schéma JSON. Il peut être exécuté en tant qu'exécutable autonome ou intégré à un script Ruby.
Ensuite, vous pouvez utiliser json-schema pour valider les exemples JSON par rapport à votre schéma nouvellement généré si vous le souhaitez.
la source
Pour les outils hors ligne qui prennent en charge plusieurs entrées, le meilleur que j'ai vu jusqu'à présent est https://github.com/wolverdude/GenSON/ Je voudrais voir un outil qui prend les noms de fichiers sur l'entrée standard car j'ai des milliers de fichiers . Cependant, je suis à court de descripteurs de fichiers ouverts, alors assurez-vous que les fichiers sont fermés . J'aimerais également voir des générateurs de schéma JSON qui gèrent la récursivité. Je travaille maintenant sur la génération de classes Java à partir d'objets JSON dans l'espoir d'aller au schéma JSON à partir de mes classes Java. Voici mon script GenSON si vous êtes curieux ou souhaitez y identifier des bugs.
la source
Il y a beaucoup d'outils mentionnés, mais un autre appelé inférenceur de schéma JSON pour mémoire:
https://github.com/rnd0101/json_schema_inferencer
(ce n'est pas une bibliothèque ou un produit, mais un script Python)
Avec la divulgation complète habituelle: je suis l'auteur.
la source
Pour node.js> 6.0.0, il existe également le module json-schema-by-example .
la source