【发布时间】:2010-12-13 09:38:35
【问题描述】:
我在 WP7 工作。我需要将 JSON 数组值解析到列表框中。有人说,使用序列化器和反序列化器,但我不知道如何使用序列化器和反序列化器将这些值解析到组合框或列表框?
【问题讨论】:
标签: c# .net-3.5 silverlight-4.0 windows-phone-7
我在 WP7 工作。我需要将 JSON 数组值解析到列表框中。有人说,使用序列化器和反序列化器,但我不知道如何使用序列化器和反序列化器将这些值解析到组合框或列表框?
【问题讨论】:
标签: c# .net-3.5 silverlight-4.0 windows-phone-7
我建议使用JSON.NET - 我在 Windows Phone 7 中使用它没有任何问题。
不要专注于一开始的列表框 - 专注于从 JSON 转换为您自己的类型。然后分别处理如何在列表框中显示该类型的对象集合。
【讨论】:
string MyJsonString ="{your JSON here}"; //JSON Result
var ds = new DataContractJsonSerializer(typeof(City[]));
var msnew = new MemoryStream(Encoding.UTF8.GetBytes(MyJsonString));
City[] items = (City[])ds.ReadObject(msnew);
foreach (var ev in items)
{
ComboCityBox.Items.Add((ev.name.ToString()));// binding name in to combobox
}
【讨论】:
这是一个使用DataContractJsonSerializer 的示例。但是,为了提高性能,您应该考虑使用Json.Net。
string jsonString = "{your JSON here}";
var ms = new MemoryStream(Encoding.Unicode.GetBytes(jsonString));
var serializer = new DataContractJsonSerializer(typeof(YourListObject));
var deserialized = (YourListObject)serializer.ReadObject(ms);
然后您可以遍历对象中的项目并将它们添加到列表框。
【讨论】: