[英]deserialize json array to list 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<Student>));
List<Student> result = obj.ReadObject(stream) as List<Student>;
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);
它......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.