2016-11-07 44 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