2016-10-13 26 views
0

問題の仕様:asp.netでweb apiをビルドして、複数レベルのjson形式のデータを投稿します。マルチレベルJson形式のASP.Netでモデルを作成するには?

JSON形式:

{ 
    "InfoList:"[ 
    { 
    "Name": " Sample String 1", 
    "URL": " Sample String2", 
    "Info":[ 
     { 
      "ZIP": " Sample String3 " 
      "status": "Sample String4" 
     } 
    ] 
    } 
    ] 
} 

私はこの問題を解決しようとしました。私のモデルは怒鳴る与えられている:

マイモデル:

{ 
    "InfoList": { 
    "Name": "sample string 1", 
    "URL": "sample string 2", 
    "Info": { 
     "ZIP": "sample string 1", 
     "status": "sample string 2" 
    } 
    }, 
    "Name": "sample string 1", 
    "URL": "sample string 2", 
    "Info": { 
    "ZIP": "sample string 1", 
    "status": "sample string 2" 
    } 
} 

私は正確に行うには、問題のspecification.Whatのように、それらの括弧を必要とする:JSON形式のこの種を生成し

public class Information : InfoList 
    { 
     public InfoList InfoList { get; set; } 
    } 

public class InfoList 
     { 

      public string Name { get; set; } 

      public string URL { get; set; } 

      public Info info { get; set; } 
     } 

public class Info 
    { 
     public string ZIP{ get; set; } 

     public string status { get; set; } 

    } 

それらのモデル?私はASP.Net Web APIコントローラーで作業しています。あなたはInfoListからInformationを継承しているので、当然、それはフィールドNameを取得します

+0

プロパティコレクションを作成する必要があります - 'public IEnumerable InfoList {get;セット; } 'と' public IEnumerable info {get;セット; } ' –

答えて

0

JSONをコピーしてからC#クラスファイルを作成するだけです。次に、「編集」 - >「形式を選択して貼り付け」>「JSONをクラスとして貼り付け」をクリックします。それはそうです...

これにはVisual Studioが必要です。詳細については

だからあなたのクラスは、このようにする必要があり、リンク

How to show the "paste Json class" in visual studio 2012 when clicking on Paste Special?

有効なJSON

{ 
    "InfoList": { 
     "Name": " Sample String 1", 
     "URL": " Sample String2", 
     "Info": [ 
      { 
       "ZIP": " Sample String3 ", 
       "status": "Sample String4" 
      } 
     ] 
    } 
} 

下記参照してください。

public class Rootobject 
{ 
    public Infolist InfoList { get; set; } 
} 

public class Infolist 
{ 
    public string Name { get; set; } 
    public string URL { get; set; } 
    public Info[] Info { get; set; } 
} 

public class Info 
{ 
    public string ZIP { get; set; } 
    public string status { get; set; } 
} 
+0

これにはVisual Studioが必要だと言えます。 C#に固有のことは何もありません。 –

1

URLなどの継承を削除し、配列またはリストにInfoListInfoメンバーを変更すると、あなたが望む結果を得ます。

public class Information 
{ 
    public InfoList[] InfoList { get; set; } 
} 

public class InfoList 
{ 
    public string Name { get; set; } 
    public string URL { get; set; } 
    public Info[] info { get; set; } 
} 

public class Info 
{ 
    public string ZIP{ get; set; } 
    public string status { get; set; } 
} 
+0

こんにちはサミ。このコードは私に蛇行json形式を返します - > – Pongta

+0

このコードは私に正確なJson形式を与えていません。 マイポストメソッド: public string Post([FromBody]情報値) { string hello; "value"を返します。 } 投稿メソッドに問題はありますか? – Pongta

+0

@Pongtaそのコードはjson形式で何も返さないので、難しいです。 –

0

あなたはJSONデータ列からC#クラスを作成するためにhttp://json2csharp.com/オンラインツールを使用することができます。あなたのjsonをコピーしてクラスを取得するだけです。

関連する問題