如何在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; } }
您可以自己使用这个生成器工具。