75

JSON 形式で大量のデータを返す C# WCF Web サービスを作成しています。クライアントは現在別のチームが開発中の iPad アプリケーションなので、サンプル データなしで仕様に取り組んでいます。
現在、JSON 文字列は .net フレームワークによって作成されています。私の Web サービスは、DataContracts を使用してフレームワークによってシリアル化されるすべての情報を含む C# オブジェクトを返しています。

私の問題は、通信仕様に JSON スキーマ ファイル ( http://json-schema.org/に基づく) しか含まれていないことです。開発を容易にするために、対応するクラスを C# で生成したいと考えていますが、ファイルには非常に多くの情報が含まれており、多数のファイルが存在するため、それらのクラスを手動で作成することはあまりしたくありません。

だから私は次のいずれかを可能にするツールを探しています:

  • JSON スキーマから C# クラスを生成します。
  • JSON スキーマを XSD ファイルに変換します。XSD からクラスを生成するためのツールがたくさんあるので、クラスを作成するのは簡単です。

JSON スキーマに対して JSON 文字列を検証したり、JSON 文字列からクラスを生成したりするための多くのツールを見つけましたが、役に立たないようです。JSON.NET
が ありますが、ツールではなくライブラリのようで、それを使用したクラスの生成に関する情報は見つかりませんでした。

したがって、誰かがツールを知っているか、それらのクラスを生成する方法についてアイデアを持っている場合 (Java でクラスを作成するツールを試しましたが、機能しませんでした)。

4

8 に答える 8

44

ナゲットでこのライブラリを調べてください。NJsonSchema.CodeGenerationを使用して、JSON スキーマから C# または TypeScript コードを生成できます

var generator = new CSharpGenerator(schema);
var file = generator.GenerateFile();

ファイル変数には、JSON スキーマで定義されたすべてのクラスの C# コードが含まれるようになりました。

于 2016-04-05T11:23:39.287 に答える
3

今日これが必要だったのですが、あなたの質問に対する確固たる回答が見当たらなかったので、これを作りました。完璧ではありませんが、構築するための良い出発点です。

https://gist.github.com/rushfrisby/c8f58f346548bf31e045

于 2014-07-25T20:33:22.427 に答える
3

これは、JSON データのサンプル セットから C# クラスを生成するために過去に使用したオンライン クラス ジェネレーターです。

http://json2csharp.com/

于 2014-07-07T19:55:18.430 に答える
-1

Json.NET のヘルプを参照してください。便利な Json.Schema 名前空間があります。

http://james.newtonking.com/projects/json/help/

Json.NET - クイック スタートと API ドキュメント Newtonsoft.Json.Schema 名前空間 名前空間 ► Newtonsoft.Json.Schema

プロジェクト ページ: http://json.codeplex.com/

于 2011-06-15T15:38:56.183 に答える