反序列化JSON数组列出WP7
我需要从内部JSON子阵列获取的数据,但它没有得到转换成列表,下面是我的JSON字符串反序列化JSON数组列出WP7
{“responseCode”:“0”,“responseObject” :{“TotalRecords”:25,“TotalDisplayRecords”:25,“aaData”:[{“InvoiceId”:16573,“somedata ..”,“appCrmAccount(一些标题,总共100个这样的标题) amount”:40086.00, invoiceNumber “:” 12,帐户名 “:” dfgAsfsadf “” dueDateStr “:” 2012" 年4月24日(数据将进入名单)
这里是我的代码:
var djson = new DataContractJsonSerializer(typeof(dataList));
var stream = new MemoryStream(Encoding.UTF8.GetBytes(json));
dataList result = (dataList)djson.ReadObject(stream);//not getting execute
善意帮助.. 在此先感谢。
究竟你需要做的是采取数组元素回报为DataContract及其子成员的数据成员作为
[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);
,它...
试试这个
private void btnAdd_Click(object sender, RoutedEventArgs e)
{
WebClient proxy = new WebClient();
proxy.DownloadStringCompleted += new DownloadStringCompletedEventHandler(proxy_DownloadStringCompleted);
proxy.DownloadStringAsync(new Uri(""));
}
,需要解析返回的JSON如下。在创建DataContractJsonSrrializer实例的参数中,我们传递了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
}
谢谢,它的工作.. – Anand 2012-05-07 09:37:43
标记为答案,请,如果是。 – 2012-05-10 08:04:38
我有类似的问题,但这不适用于数组...虽然我不明白这是什么:Name =“aaData”? – 2012-05-11 14:38:46
你是什么意思没有得到执行?一个错误?例外? – 2012-04-25 05:10:25
你能在这里发布类“dataList”的代码吗?你使用DataContract和DataMember属性吗? – 2012-04-25 07:52:51