如何反序列化的Windows Phone JSON数据? [英] How to deserialize json data in windows phone?
本文介绍了如何反序列化的Windows Phone JSON数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
最初的json是格式,
代码:0,
消息:成功,
学生:[
{
标识:257633000000070001,
名:hjeke,
百分比:36 ,
类型:好,
},
{
标识:257633000000073001,
名:第二,
百分比:4,
类型:坏,
}]
,所以我用下面的类使用Newtonsoft.json
反序列化
[DataContract]
公班学生
{
[数据成员(NAME =代码)]
公众诠释代码{搞定;组; }
[数据成员(名称=消息)]
公共字符串消息{搞定;组; }
[数据成员(名称为学生)]
公共StudentDetail StudentDetail {搞定;组; }
}
[DataContract]
公共类StudentDetail
{
[数据成员(NAME =ID)]
公共字符串ID {搞定;组; }
[数据成员(名称=名称)]
公共字符串名称{;组; }
[数据成员(NAME =百分比)]
公共双PercentageForEdit {搞定;组; }
[数据成员(名称=类型)]
公共字符串类型{搞定;组; }
}
但现在我的JSON是改变,
代码:0,
消息:成功,
学生:{
的详细信息:{
hjeke:{
标识:257633000000070001,
名:hjeke,
百分比:36,
类型:好,
},
第二:{
标识:257633000000073001,
名:第二,
百分比:4,
类型:坏,
}
}
}
我应该如何改变我的学生类,这样,
StudentDetails = JsonConvert.DeserializeObject<学生>(数据);
解决方案
如果您在使用Newtonsoft.Json,尝试使用类:
公共类StudentDetails
{
公共字符串ID {搞定;组; }
公共字符串名称{;组; }
公众诠释百分比{搞定;组; }
公共字符串类型{搞定;组; }
}
公共类学生
{
公众诠释代码{搞定;组; }
公共字符串消息{搞定;组; }
公开名单< StudentDetails>学生{搞定;组; }
}
在这之后,你可以使用这个类反序列化使用以下方式回应:
VAR parsedResponse = JsonConvert.DeserializeObject<的Student GT;(数据);
P.S。当然,不要忘了 [DataContract]
和 [数据成员]
属性
Initially my json was in the format,
"code": 0,
"message": "success",
"students": [
{
"id": "257633000000070001",
"name": "hjeke",
"percentage": 36,
"type": "Good",
},
{
"id": "257633000000073001",
"name": "Second",
"percentage": 4,
"type": "bad",
}]
And so i used the following class for deserializing using Newtonsoft.json
[DataContract]
public class students
{
[DataMember(Name = "code")]
public int Code { get; set; }
[DataMember(Name = "message")]
public string Message { get; set; }
[DataMember(Name = "students")]
public StudentDetail StudentDetail { get; set; }
}
[DataContract]
public class StudentDetail
{
[DataMember(Name = "id")]
public string ID { get; set; }
[DataMember(Name = "name")]
public string Name { get; set; }
[DataMember(Name = "percentage")]
public double PercentageForEdit { get; set; }
[DataMember(Name = "type")]
public string Type { get; set; }
}
But now my json is changed to,
"code": 0,
"message": "success",
"students": {
"details":{
"hjeke": {
"id": "257633000000070001",
"name": "hjeke",
"percentage": 36,
"type": "Good",
},
"Second": {
"id": "257633000000073001",
"name": "Second",
"percentage": 4,
"type": "bad",
}
}
}
How should i change my students class so that,
StudentDetails = JsonConvert.DeserializeObject<Students>(data);
解决方案
If you using Newtonsoft.Json, try to use that classes:
public class StudentDetails
{
public string id { get; set; }
public string name { get; set; }
public int percentage { get; set; }
public string type { get; set; }
}
public class Student
{
public int code { get; set; }
public string message { get; set; }
public List<StudentDetails> students { get; set; }
}
After that, you can use that class to Deserialize responses using following way:
var parsedResponse = JsonConvert.DeserializeObject<Student>(data);
P.S. Of course, do not forget about [DataContract]
and [DataMember]
attributes
这篇关于如何反序列化的Windows Phone JSON数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文