2017-05-19 11 views
-1

以下のJSONを逆シリアル化できるように、どのようにクラスを表示する必要がありますか。restsharpを使用してこのJSON形式をどのようにデシリアライズできますか? (c#)

{ 
    "Bob": [{ 
      "code": "Bob", 
      "tier": 1 
     }, 
     { 
      "code": "Bob", 
      "tier": 2 
     } 
    ], 
    "Joe": [{ 
      "code": "Joe", 
      "tier": 1 
     }, 
     { 
      "code": "Joe", 
      "tier": 2 
    } 

    ] 
    }  

(json2csharp.comから)以下のクラスは動作しますが、私のJSONは異なる名前の多くを持っているとき、これは、私は100の+のクラスで終わるだろうとスケールするつもりはありません。

public class Bob 
{ 
    public string code { get; set; } 
    public int tier { get; set; } 
} 

public class Joe 
{ 
    public string code { get; set; } 
    public int tier { get; set; } 
} 

public class RootObject 
{ 
    public List<Bob> Bob { get; set; } 
    public List<Joe> Joe { get; set; } 
}  

任意の提案やアイデアは、ここで私を助けるだろう。(私は辞書と動的リストを使用してみましたが)

+0

としてボブとジョーは、同じ基本クラスから継承する可能性が...私はあなたがあなたのクラスが定義されている方法を再考する必要があるかもしれないと思うが。ボブとジョーは同じですから、代わりにクラスのStudentまたはPersonクラスを持っているだけです。 –

+0

JSONを変更して、 'Bob'と' Joe'を配列内のオブジェクトにできますか? – fqhv

+0

いいえ、ボブとジョーが例であり、変更できないプライベートAPIのデータを使用しています。実際のJSONは、クラス内でより多くの変数を持ちます。しかし、それは同じ形式です。 – andrewYosh

答えて

1

あなたはJSONの構造をしたくない場合は、使用しようとすることができますJSONプロパティ名に基づいて名前が付けられたクラスではなく、Dictionary例えば。

public class Person { 
    public string code {get; set; } 
    public int tier {get; set; } 
} 

そしてないRootObjectとしてJSONをデシリアライズが、Dictionary<string, List<Person>>

関連する問題