C#のJSON文字列オブジェクト、受信に対応する通常のクラス定義エンティティに変換する前に要する時間。これは大きな欠点は、特に長い文字列、特にプロパティは、そこがネストされているとき、エンティティクラスをノックする手が非常に苦痛であるということである持っています。
例えば、BaiduのAPIを受けるの7日間、ネストされた層、非常に苦痛を天気予報を行う前に。
C#4.0以下のダイナミック型ダイナミック付き。Json.netこの事はエンティティクラスを定義することなく実現することができるとJSONは、オブジェクトの動的な型を回します。
次の例では、Newtonsoft.Json.dllを参照する必要があります。
パブリック クラス人{ 公共 のint Idを{ 取得します。セット; } パブリック 文字列名前{ 得ます。セット; } } クラスプログラム { 静的 ボイドメイン(文字列[]引数) { 人物P = 新しい人()。 p.Id = 1 。 p.Name = " 刘备" 。 // C#对象转のJSON 文字列 JSON =JsonConvert.SerializeObject(P); Console.WriteLineを(JSON); // { "ID" :. 1、 "名前": "備"} // ここで場合のシミュレーションエンティティ・クラスを構築しない、逆戻りJSON動的オブジェクト VAR DynamicObject = JsonConvert.DeserializeObject < 動的 > (JSON); Console.WriteLineを(DynamicObject.Name); // 備 Console.ReadKey(); } }
これらは、単純なJSONオブジェクトを取得するには、エンティティクラスを借用しています。
実際には、これは何のPersonクラスないかもしれません。
静的 ボイドメイン(文字列[]引数) { 文字列 JSON = " {\" ID \ ":1、\"名\ ":\"備\ "\"年齢\ "\" 22は\ "} " ; / / ここでは、シミュレーションのエンティティクラスを構築反転動的オブジェクトのJSONが戻っていない場合 VAR DynamicObject = JsonConvert.DeserializeObject < 動 > ;(JSON)を Console.WriteLineを(DynamicObject.Name); // 備 Console.ReadKey( ); }
ノー参照Microsoft.CSharp.dll場合は、動的な型で、VSは、エラーが発生することがあります。
VSは、コンパイルエラーを返すことができますダイナミック式のコンパイルに必要な1つまたは複数のタイプを見つけることができません。あなたは、参照が不足していますか?