Wir haben diesen json Schema Entwurf . Ich möchte ein Beispiel meiner JSON-Daten erhalten und ein Skelett für das JSON-Schema generieren, das ich manuell überarbeiten kann, indem ich Dinge wie Beschreibung, Erforderliches usw. hinzufüge, die aus den spezifischen Beispielen nicht abgeleitet werden können.
Zum Beispiel aus meiner Eingabe example.json
:
{
"foo": "lorem",
"bar": "ipsum"
}
Ich würde mein Tool json_schema_generator ausführen und erhalten:
{ "foo": {
"type" : "string",
"required" : true,
"description" : "unknown"
},
"bar": {
"type" : "string",
"required" : true,
"description" : "unknown"
}
}
Dieses Beispiel wurde manuell codiert, daher weist es möglicherweise Fehler auf. Gibt es ein Tool, das mir bei der Konvertierung von JSON -> JSON-Schema helfen könnte?
json
validation
reflection
jsonschema
blueFast
quelle
quelle
Antworten:
Vielleicht suchen Sie danach:
http://www.jsonschema.net
Es ist ein Online-Tool, das automatisch ein JSON-Schema aus einer JSON-Zeichenfolge generieren kann. Und Sie können das Schema einfach bearbeiten.
quelle
{"hello": "world","num": 42}
sieht aber vielversprechend ausZusammenfassend die anderen Antworten, hier sind die bisher vorgeschlagenen JSON-Schema-Generatoren:
Online:
Python:
NodeJS:
Rubin:
quelle
setup.py
GenSON ( PyPI | Github ) ist ein JSON-Schema-Generator, der aus mehreren Objekten ein einzelnes Schema generieren kann. Sie können auch Schemas damit zusammenführen. Es ist in Python geschrieben und wird mit einem CLI-Tool geliefert.
(Vollständige Offenlegung: Ich bin der Autor.)
quelle
Da diese Frage einige positive Stimmen erhält, füge ich neue Informationen hinzu (ich bin mir nicht sicher, ob dies neu ist, konnte es aber zu diesem Zeitpunkt nicht finden).
quelle
Nach einigen Monaten ist die beste Antwort, die ich habe, mein einfaches Werkzeug. Es ist roh aber funktional.
Was ich will , ist etwas Ähnliches wie dieses . Die JSON-Daten können ein Grundgerüst für das JSON-Schema bereitstellen. Ich habe es noch nicht implementiert, aber es sollte möglich sein, ein vorhandenes JSON-Schema als Basis anzugeben, damit das vorhandene JSON-Schema plus JSON-Daten ein aktualisiertes JSON-Schema generieren kann. Wenn kein solches Schema als Eingabe angegeben wird, werden vollständig Standardwerte verwendet.
Dies wäre bei der iterativen Entwicklung sehr nützlich: Wenn das Tool zum ersten Mal ausgeführt wird, ist das JSON-Schema Dummy, kann jedoch entsprechend der Datenentwicklung automatisch verfeinert werden.
quelle
Es gibt ein Python-Tool zum Generieren eines JSON-Schemas für einen bestimmten JSON: https://github.com/perenecabuto/json_schema_generator
quelle
draft-03
. H.generate-schema
( NPM | Github ) nimmt ein JSON-Objekt, generiert daraus Schemas, eine Ausgabe ist JSON Schema, es ist in Node.js geschrieben und wird mit einem REPL- und ClI-Tool zum Weiterleiten von Dateien geliefert.Vollständige Offenlegung: Ich bin der Autor :)
quelle
Unter https://github.com/krg7880/json-schema-generator gibt es ein nodejs-Tool, das json schema v4 unterstützt
Es funktioniert entweder als Befehlszeilenprogramm oder als NodeJS-Bibliothek:
quelle
json-schema-generator ist ein ordentlicher Ruby-basierter JSON-Schema-Generator. Es unterstützt sowohl Entwurf 3 als auch Entwurf 4 des JSON-Schemas. Es kann als eigenständige ausführbare Datei ausgeführt oder in ein Ruby-Skript eingebettet werden.
Anschließend können Sie mit json-schema JSON-Beispiele anhand Ihres neu generierten Schemas validieren, wenn Sie möchten.
quelle
Für die Offline-Tools, die mehrere Eingaben unterstützen, ist das Beste, was ich bisher gesehen habe, https://github.com/wolverdude/GenSON/. Ich würde gerne ein Tool sehen, das Dateinamen für Standardeingaben verwendet, da ich Tausende von Dateien habe . Mir gehen jedoch die offenen Dateideskriptoren aus, stellen Sie also sicher, dass die Dateien geschlossen sind . Ich würde auch gerne JSON-Schema-Generatoren sehen, die die Rekursion verarbeiten. Ich arbeite jetzt daran, Java- Klassen aus JSON-Objekten zu generieren, in der Hoffnung, aus meinen Java-Klassen zum JSON-Schema zu wechseln. Hier ist mein GenSON-Skript, wenn Sie neugierig sind oder Fehler darin identifizieren möchten.
quelle
Es werden viele Tools erwähnt, aber ein weiterer wird als JSON Schema Inferencer für den Datensatz bezeichnet:
https://github.com/rnd0101/json_schema_inferencer
(Es ist keine Bibliothek oder ein Produkt, sondern ein Python-Skript)
Mit der üblichen vollständigen Offenlegung: Ich bin der Autor.
quelle
Für node.js> 6.0.0 gibt es auch das Modul json-schema-by-example .
quelle