如何在Windows Phone中反序列化json数据?

最初我的json是格式的,

"code": 0, "message": "success", "students": [ { "id": "257633000000070001", "name": "hjeke", "percentage": 36, "type": "Good", }, { "id": "257633000000073001", "name": "Second", "percentage": 4, "type": "bad", }] 

所以我使用以下类使用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; } } 

但现在我的json改为

 "code": 0, "message": "success", "students": { "details":{ "hjeke": { "id": "257633000000070001", "name": "hjeke", "percentage": 36, "type": "Good", }, "Second": { "id": "257633000000073001", "name": "Second", "percentage": 4, "type": "bad", } } } 

我应该如何改变我的学生class级,

  StudentDetails = JsonConvert.DeserializeObject(data); 

如果您使用Newtonsoft.Json,请尝试使用该类:

 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 students { get; set; } } 

之后,您可以使用该类以下列方式反序列化响应:

 var parsedResponse = JsonConvert.DeserializeObject(data); 

PS当然,不要忘记[DataContract][DataMember]属性

首先,你的Json似乎没有效果,对象{}缺少周围的括号。 要找到匹配的C#类,此站点上有一个很好的转换器

对于你的第二个带有对象括号的Json:

 "code": 0, "message": "success", "students": { "details":{ "hjeke": { "id": "257633000000070001", "name": "hjeke", "percentage": 36, "type": "Good", }, "Second": { "id": "257633000000073001", "name": "Second", "percentage": 4, "type": "bad", } } } 

它建议这些类:

 public class Hjeke { public string id { get; set; } public string name { get; set; } public int percentage { get; set; } public string type { get; set; } } public class Second { public string id { get; set; } public string name { get; set; } public int percentage { get; set; } public string type { get; set; } } public class Details { public Hjeke hjeke { get; set; } public Second Second { get; set; } } public class Students { public Details details { get; set; } } public class RootObject { public int code { get; set; } public string message { get; set; } public Students students { get; set; } } 

您可以自己使用这个生成器工具。