このJSONスキーマ draft があります。 JSONデータのサンプルを取得し、JSONスキーマのスケルトンを生成したいと思います。これは、特定の例から推測できない説明、必須などの追加を手動で行うことができます。
たとえば、私の入力example.json
から:
{
"foo": "lorem",
"bar": "ipsum"
}
私はjson_schema_generatorツールを実行し、以下を取得します。
{ "foo": {
"type" : "string",
"required" : true,
"description" : "unknown"
},
"bar": {
"type" : "string",
"required" : true,
"description" : "unknown"
}
}
この例は手動でコーディングされているため、エラーがある可能性があります。 JSON-> JSONスキーマの変換に役立つツールはありますか?
この質問にかなりの賛成票が寄せられているのを見て、新しい情報を追加します(これが新しいかどうかはわかりませんが、当時は見つかりませんでした)
あなたはこれを探しているかもしれません:
これは、JSON文字列からJSONスキーマを自動的に生成できるオンラインツールです。また、スキーマを簡単に編集できます。
他の答えを要約すると、これまでに提案されたJSONスキーマジェネレーターは次のとおりです。
オンライン:
Python:
NodeJS:
ルビー:
数ヶ月後、私が持っている最良の答えは私の簡単なツールです。生ですが機能的です。
私が欲しいのは this に似たものです。 JSONデータは、JSONスキーマのスケルトンを提供できます。まだ実装していませんが、既存のJSONスキーマとJSONデータが更新されたJSONスキーマを生成できるように、既存のJSONスキーマを基礎として提供することが可能です。そのようなスキーマが入力として与えられない場合、完全にデフォルト値が使用されます。
これは、反復開発で非常に役立ちます。ツールを初めて実行するとき、JSONスキーマはダミーですが、データの進化に応じて自動的に調整できます。
特定のJSONのJSONスキーマを生成するPythonツールがあります。 https://github.com/perenecabuto/json_schema_generator
https://github.com/krg7880/json-schema-generator にjsonスキーマv4をサポートするnodejsツールがあります
コマンドラインツールとして、またはnodejsライブラリとして機能します。
var jsonSchemaGenerator = require('json-schema-generator'),
obj = { some: { object: true } },
schemaObj;
schemaObj = jsonSchemaGenerator(json);
json-schema-generator は、RubyベースのJSONスキーマジェネレーターです。 JSONスキーマのドラフト3と4の両方をサポートしています。スタンドアロンの実行可能ファイルとして実行するか、Rubyスクリプト内に埋め込むことができます。
次に、 json-schema を使用して、必要に応じて、新しく生成されたスキーマに対してJSONサンプルを検証できます。
多くのツールが言及されていますが、もう1つはレコード用のJSONスキーマ推論と呼ばれています。
https://github.com/rnd0101/json_schema_inferencer
(ライブラリまたは製品ではなく、Pythonスクリプトです)
通常の完全開示:私は著者です。
複数の入力をサポートするオフラインツールの場合、これまで見た中で最高のものは https://github.com/wolverdude/GenSON/ 標準のファイル名を取得するツールが見たいです。何千ものファイルがあるので入力してください。ただし、開いているファイル記述子が不足しているため、ファイルがclosedであることを確認してください。また、再帰を処理するJSONスキーマジェネレーターも見たいです。私は現在、JavaクラスからJSONスキーマに行くことを期待して、JSONオブジェクトからJavaclassesの生成に取り組んでいます。興味がある場合、またはバグを特定したい場合のGenSONスクリプトを次に示します。
#!/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
Node.js> 6.0.0の場合、 json-schema-by-example モジュールもあります。