如何反序列化的Windows Phone JSON数据? [英] How to deserialize json data in windows phone?

查看:139
本文介绍了如何反序列化的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆