Json反序列化到列表

问题描述:

我正在写一个Windows Phone应用程序,它将从服务器获取一组数据并在列表框中显示每个条目。Json反序列化到列表

的数据来自服务器看起来像这样

{ 
    "data": [ 
    { 
     "value1": 777103069782066, 
     "value2": "SomeString", 
     "value3": "TextToDisplay1" 
    }, 
    { 
     "value1": 750050696652932, 
     "value2": "SomeString2", 
     "value3": "TextToDisplay2" 
    }, 
    { 
     "value1": 516092242936133, 
     "value2": "SomeString3", 
     "value3": "TextToDisplay3" 
    } 
    ] 
} 

我知道如何获取数据到这样

​​

一本字典,但它捣烂所有到一个字典条目(以预计,这就是全部)。

我想将“数据”中的所有列表项存储在一个变量testList中 - 这样我就可以从'testList'中访问每个单独的字典。我怎样才能做到这一点?

对不起,如果问题是罗嗦。如果需要,我可以澄清。

谢谢,
克里斯

你为什么不创建自己的数据类:

public class MyClass 
{ 
    public long value1; 
    public string value2; 
    public string value3; 
} 

然后反序列化这样的:

Dictionary<string, IEnumerable<MyClass>> values = JsonConvert.DeserializeObject<Dictionary<string, IEnumerable<MyClass>>>(json); 

IEnumerable<MyClass>部分将是你的testList

UPD:在情况下,如果你想避免自定义对象使用类似

Dictionary<string, IEnumerable<Dictionary<string, string>>> values = 
    JsonConvert.DeserializeObject<Dictionary<string, IEnumerable<Dictionary<string, string>>>>(json); 
+0

因为我使用的数据来自一个JSON格式的服务器。我试图避免让我的所有数据项硬编码,因为服务器将来会改变它们。我真正想要做的就是将我的词典键中的所有项目 - “数据”转换为词典列表。 – Chris