2017-07-11 10 views
2

Json文字列をC#オブジェクトに変換する簡単な方法はありますか?SwaggerをC#オブジェクトに変換する

私はJSON形式で闊歩ファイルを持っているし、C#のオブジェクト

{ 
    "swagger": "2.0", 
    "info": { 
    "version": "Profiles", 
    "title": "Profiles" 
    }, 
    "paths": { 
    "/api/Profiles/Get": { 
     "get": { 
     "tags": [ "Profiles"], 
     "operationId": "Profiles_GetById", 
     "consumes": [], 
     "produces": [], 
     "parameters": [{ "name": "id"}] 
     } 
    }, 
    "/api/Profiles": { 
     "get": { 
     "tags": [ 
      "Profiles" 
     ], 
     "operationId": "Profiles_GetBySubscriptionid", 
     "consumes": [], 
     "produces": [], 
     "parameters": [{ "name": "subscriptionId"}] 
     } 
    } 
    }, 
    "definitions": {} 
} 

にそれを作るために必要があるので、私が今直面しています問題は、私は私のプロパティへのパスを変換する方法が分からないということですC#オブジェクト。具体的には、 "/ api/Profiles/Get"、または "/ api/Profiles"のC#オブジェクトプロパティを定義する方法がわかりません。

public class SwaggerObject 
{ 
    [JsonProperty("paths")] 
    public SwaggerPath Paths { get; set;} 
} 
public class SwaggerPath { 
    ... 
} 
+0

有効なJson文字列がある場合は、Jsonコンバータを使用してC#オブジェクトを作成しました。例:Newtonsoft.Json.JsonConvert.DeserializeObject (Json); – Mickers

+0

Visual Studioには、jsonファイルに基づいてクラスを生成する組み込みツールがあります。 jsonをコピーし、 'View'のどこかに 'jsonをクラスとして貼り付け'ます。これを手動でやりたいのであれば、JsonPropertyを 'api ....'で試してみることができますが、それがうまくいくかどうかはわかりません。もう1つの方法は、Dictionary MistyK

+0

に逆シリアル化することです。@Mickers Parserクラスでは、すでにJsonConvert.DeserializeObject (json)を使用していました。問題は、Jsonフォーマットは名前と値のペアです。そのため、 "/ api/Profiles/Get"や "/ api/Profiles"を含むようにSwaggerPathのプロパティをどのように定義すべきか分かりません。 –

答えて

0

有効な闊歩定義を持っている場合、あなたはあなたのためのクライアントを生成するためにAutoRestを使用することができます。自動生成されたクライアントには、スガッガー文書で定義したすべてのタイプのモデルが含まれています。

応答を取得した後にNewtonsoft.Json.JsonConvert.DeserializeObject<MyModel>(json​)を呼び出すことができます。さらに、.NETコードでHTTP呼び出しを行うために自動生成されたクライアントを使用できます。

関連する問題