スキーマ定義のJSON文字列を検証できる単純なライブラリ(.NETとJava)がありますか?スキーマに対してJSON文字列をプログラムで検証するにはどうすればよいですか?
XSDを使用してXMLを検証する方法と同様に動作するはずです。
EDIT:私は.NETのと Javaライブラリが必要です。 .NETリンクのダーリンに感謝します!
スキーマ定義のJSON文字列を検証できる単純なライブラリ(.NETとJava)がありますか?スキーマに対してJSON文字列をプログラムで検証するにはどうすればよいですか?
XSDを使用してXMLを検証する方法と同様に動作するはずです。
EDIT:私は.NETのと Javaライブラリが必要です。 .NETリンクのダーリンに感謝します!
Json.NETはschema validationをサポートしています。
Here JSONを使用する際に役立ついくつかのJavaクラスがあります。
JSON Stringの構文が正しくない場合JSONExceptionがスローされます。これは正しさをチェックする最も簡単な方法ですJSONTokenerは、解析するために使用するクラスです。これには、java.lang.Stringをパラメータとするコンストラクタがあります。
編集:申し訳ありませんが、私は少し誤解しました。おそらくJSON Toolsがあなたが探しているライブラリです。それはvalidation using a JSON schemaを提供します。
私は、構文検証ではなく、スキーマ検証を探しています。私は質問をより明確にするでしょう。 –
私は自分の答えを編集しました。 –
Upvoted、リンクのおかげで。私はJson.NETとJSONツールを使用します。 2つの回答を受け入れる方法はありませんか? –
www.json-schema.orgは、JSONでスキーマを実装するための標準を定義しています。ここでは多くの言語でバリデータを含むソフトウェアのリストがあります:
私は、スキーマに対する妥当性検証のための最近の.NETライブラリのNJsonSchemaを使用しました、それは定義でさえ複雑なスキームのために、私のために完璧に働きましたいくつかのファイルに:
https://github.com/NJsonSchema/NJsonSchema
NJsonSchemaは、読んで生成し、JSON Schemaの草案v4のスキーマを検証するための.NETライブラリです。ライブラリは、ファイルまたは文字列からスキーマを読み取り、それに対してJSONデータを検証できます。スキーマは、既存の.NETクラスから生成することもできます。コード生成APIを使用すると、スキーマからC#およびTypeScriptクラスまたはインターフェイスを生成できます。
これは、スキーマに対して検証するだけでなく、既存のクラスからスキーマファイルを生成することもできます。利点は、それがオープンソースであり、プロジェクトの著者とのコミュニケーションが私の質問の場合に非常に迅速かつ良好であったことです。
これは、検証のための無料のソリューションをお探しの方に適しています。
選択したライブラリは、Json.NET(.NET用)とJsonTools(Java用)でした。私は、スキーマを作成するための参考資料としてhttp://www.json-schema.org/とhttp://groups.google.com/group/json-schema/web/json-schema-proposal-working-draftを使用しています。また、あなたのスキーマとJSONをオンラインでチェックすることもできます:http://james.newtonking.com/projects/json/schema.aspx(Json.NETの作成者から) –
私はこの件に関して多くの変更があったと思います2009年9月。あなたの考えは今何ですか? JSONの検証(特にJavaの場合)に何かを使用していますか?また、@Dejw、あなたはどうですか? – blong
まあ、真実を伝えるために、私はこの検証を行った後すぐに新しいプロジェクトに移りました。私が正しく覚えていれば、私たちは最後に妥当性検査を廃止しました。私は、XMLを好んだ上級者を安らかにするための検証手段を提供しなければならなかった。しかし、彼らは最終的に検証なしで満足していました。私は、検証の複雑さを加える良い理由は本当にありません。 JSONオブジェクトをViewModelまたはDTOにマップし、適切なパラメータチェックを行います。サーバー側のViewModelまたはDTOは、私が信じるオールインワンのスキーマ定義と検証の役割を果たすことができます。最近はそれが私の考えです。 –