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