2016-11-07 73 views
0

我正在從資源C#JSON序列化格式( 「1」:{ 「ID」: 「1」})

{ 
    "data": 
    { 
    "1": {"Id": "1"}, 
    "2": {"Id": "2"} 
    } 
} 

的follwing響應我要反序列化到這些對象的簡單列表。 我如何做到這一點,如果「1」,「2」是動態整數值? 我需要一個反序列化模型。

更新 如果它的格式如下:

{ 
    "data": 
     { 
      "1":{"modelA": {"Id": "1"}}, 
      "2":{"modelA":{"Id": "2"}} 
      } 
} 

在這裏使用什麼型號的?

+0

這是一本字典, 「1」 和「 2「是字典的關鍵。所以它會是一個'Dictionary '。 –

+0

您的更新示例需要一個名爲'modelA'的屬性,該屬性也是具有Id屬性的對象。另外,確保你的問題不是一個移動的目標。你已經得到了你的問題的答案,不要通過向Json添加更多的部分來使其失效。 –

+0

轉到[here - json2csharp](http://json2csharp.com/) - 並粘貼客棧'{「modelA」:{「Id」:「1」}}''並單擊Generate以查看如何在字典,關於答案,它將是'JsonModel'類型,它將成爲'RootObject'。 –

回答

0

你可以使用​​解串有這位模特:

class JsonModelContainer 
{ 
    public Dictionary<string, JsonModel> Data { get; set; } 
} 

class JsonModel 
{ 
    public string Id { get; set;} 
} 

用法:

var model = JsonConvert.DeserializeObject<JsonModelContainer>(jsonString); 

關於您的更新

class JsonModelContainer 
{ 
    public Dictionary<string, JsonModelA> Data { get; set; } 
} 

class JsonModelA 
{ 
    public JsonModel ModelA { get; set; } 
} 

class JsonModel 
{ 
    public string Id { get; set; } 
} 
+0

謝謝,所有的工作 – KreminT

+0

你能幫助更新格式? – KreminT

+0

@KreminT你刪除了接受的標誌,因爲你的JSON改變了?對不起,不......我想你可以從我的回答中得到解決方案,解決你的新問題 – Nico