2016-06-17 5 views
0

まず、この質問が以前に尋ねられている可能性がありますが、私は推測している言葉の貧弱なために答えを見つけることができませんでした。JSONの逆シリアル化は、プロパティ名の値を取得しません

私はJSON形式を見たことがない私は、デシリアライゼーション

public class RootObject 
{ 
    [JsonProperty("id")] 
    public long Id { get; set; } 

    [JsonProperty("name")] 
    public string Name { get; set; } 

    [JsonProperty("choices")] 
    public Company[] Companies{ get; set; } 
} 

public class Company 
{ 
    public string[] Shops { get; set; } 
} 

のために使用したいクラスがされているバックWebServiceコールここで

{ 
    "id":5000174774, 
    "name":"company_name", 
    "choices": 
    { 
     "Farmway": 
     { 
      "Head Office (BSU)":[], 
      "Alnwick":[], 
      "Bury St Edmunds":[] 
     }, 
     "Tate": 
     { 
      "Head Office":[], 
      "Tate Britain Entrance":[] 
     } 
    } 
} 

から変なふうにフォーマットされたJSON文字列を取得しますそのように、値の代わりにプロパティ名を取得する方法がわかりません。 "choices"arrayではなくobjectですが、事前にそのプロパティを知ることはできません。私はちょうどすべての会社とその店を手に入れたいです。

私はそれが何らかの意味をなすことを望みます。

答えて

0

私はあなたのデシリアライザのことは知らないが、通常は良い候補がDictionaryです:

[JsonProperty("choices")] 
public Dictionary<string, Dictionary<string, List<OfSomething>> Companies { get; set; } 

だから、あなたの最初のキーは、会社の名前で、文字列で、値が別です辞書、会社のBUをI-don-t-know-whatのリスト/配列にリンクする。

この構造を他のものに具体化する必要がある場合は、Linqのビットで処理することができます。

関連する問題