反序列化json数组以列出wp7

我需要从json中的子数组中获取数据,但是它没有转换成列表,下面是我的json字符串

{“responseCode”:“0”,“responseObject”:{“TotalRecords”:25,“TotalDisplayRecords”:25,“aaData”:[{“InvoiceId”:16573,“somedata ..},”appCrmAccount(某些标题,总共100个这样的标题)金额“:40086.00,”invoiceNumber“:”12,accountName“:”dfgAsfsadf“,”dueDateStr“:”04/24/2012“(要进入列表的数据)

这是我的代码:

var djson = new DataContractJsonSerializer(typeof(dataList)); var stream = new MemoryStream(Encoding.UTF8.GetBytes(json)); dataList result = (dataList)djson.ReadObject(stream);//not getting execute 

请帮助..先谢谢。

试试这个

 private void btnAdd_Click(object sender, RoutedEventArgs e) { WebClient proxy = new WebClient(); proxy.DownloadStringCompleted += new DownloadStringCompletedEventHandler(proxy_DownloadStringCompleted); proxy.DownloadStringAsync(new Uri("")); } 

并且需要解析返回的JSON,如下所示。 在创建DataContractJsonSrrializer实例的参数中,我们传递了List of Student。

 void proxy_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) { Stream stream = new MemoryStream(Encoding.Unicode.GetBytes(e.Result)); DataContractJsonSerializer obj = new DataContractJsonSerializer(typeof(List)); List result = obj.ReadObject(stream) as List; lstStudents.ItemsSource = result; } 

您应该标记所有类和属性DataContract和DataMember属性。 使用你的代码片段我创建了这样的东西:

 [DataContract] public class Result { [DataMember(Name="responseCode")] public int Code { get; set; } [DataMember(Name="responseObject")] public ResponseObject Result { get; set; } } [DataContract] public class ResponseObject { [DataMember] public int TotalRecords { get; set; } [DataMember] public int TotalDisplayRecords { get; set; } [DataMember(Name="aaData")] public DataItem[] Data { get; set; } } [DataContract] public class DataItem { [DataMember(Name = "InvoiceId")] public int InvoiceId { get; set; } // Others properties } 

你需要做的是将数组元素作为DataContract返回,将其子成员作为DataMember作为

 [DataContract] public class mainresponse { [DataMember] public resultmap arrayelement { get; set; } } [DataContract] public class resultmap { [DataMember] public string substringhere { get; set; } } var djson = new DataContractJsonSerializer(typeof(Mainresponse)); var stream = new MemoryStream(Encoding.UTF8.GetBytes(responsestring)); mainresponse result = (mainresponse)djson.ReadObject(stream); 

它……