怎样讲JSON反序列化为复杂实体类?

qq610694634 2012-04-05 07:06:45
从服务器端返回的这样的一段json串
{
ret:0,
msg:"ok",
errcode:0,
data:{
timestamp:123444,
hasnext:0
info:[
{
name:"aaa",
openid:"B624064BA065E01CB73F835017FE96FA",
nick:"aaa",
head:"xxx",
sex:1,
location:"广东 深圳",
country_code:1,
province_code:44,
city_code:3,
tweet:
{
text:"adg",
from:"来自网页",
id:7987543214334,
timestamp:1285813236
},
fansnum:10,
idolnum:10,
isfans:0,
isvip:0,
tag:[{id:1,name:"aaa"},...],
},
{
name:"aaa",
openid:"B624064BA065E01CB73F835017FE96FA",
nick:"bbb",
head:"xxx",
sex:2,
location:"广东 深圳",
tweet:
{
text:"dgfgh",
from:"来自网页",
id:7987543214334,
timestamp:1285813236
}
fansnum:10,
idolnum:10,
isfans:0,
isvip:0,
tag:[{id:1,name:"bbb"},...],
}
......
]
}
}
怎样将他反序列化呢?尝试了一个下午,用了 Newtonsoft.Json 和 .Net 自带的类库System.Runtime.Serialization.Json;都只能反序列化为简单的实体类。在用Newtonsoft.Json反序列化时会出现如下错误:
Cannot deserialize JSON object into type 'System.Collections.Generic.List`1[TXWeibo.info]'.

我定义的实体类为:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization.Json;
using System.Runtime.Serialization;
namespace TXWeibo
{
[DataContractAttribute]
public class user
{
[DataMember(Name = "data")]
public List<info> data{ get; set; }
[DataMember]
public int errcode { get; set; }
[DataMember]
public string msg { get; set; }
[DataMember]
public string ret { get; set; }
[DataMember]
public int nextstartpos { get; set; }

}

[DataContract]
public class info
{
[DataMember]
public string city_code { get; set; }
[DataMember]
public string country_code { get; set; }
[DataMember]
public int fansnum { get; set; }
[DataMember]
public string head { get; set; }
[DataMember]
public int idolnum { get; set; }
[DataMember]
public bool isfans { get; set; }
[DataMember]
public bool isidol { get; set; }
[DataMember]
public int isrealname { get; set; }
[DataMember]
public int isvip { get; set; }
[DataMember]
public string location { get; set; }
[DataMember]
public string name { get; set; }
[DataMember]
public string nick { get; set; }
[DataMember]
public string openid { get; set; }
[DataMember]
public string province_code { get; set; }
[DataMember]
public int sex { get; set; }
[DataMember]
public List<Tag> tag { get; set; }
[DataMember]
public Tweet tweet { get; set; }
[DataMember]
public int nextstartpos { get; set; }
[DataMember]
public int timestamp { get; set; }
}

[DataContract]
public class Tag
{
[DataMember]
public string id { get; set; }
[DataMember]
public string name { get; set; }
}

[DataContract]
public class Tweet
{
[DataMember]
public string from { get; set; }
[DataMember]
public string id { get; set; }
[DataMember]
public string text { get; set; }
[DataMember]
public int timestamp { get; set; }
}

}


...全文
526 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
a464669508 2014-02-13
  • 打赏
  • 举报
回复
{
    "QUES_JSON": [
        {
            "chapter": true, 
            "code": "一", 
            "name": "一般情况", 
            "type": "part", 
            "values": { }
        }, 
        {
            "chapter": false, 
            "code": "1.1", 
            "name": "性别", 
            "type": "radio", 
            "valueDict": [
                {
                    "code": "1", 
                    "name": "男性", 
                    "type": "", 
                    "valueDict": [ ]
                }, 
                {
                    "code": "2", 
                    "name": "女性", 
                    "type": "", 
                    "valueDict": [ ]
                }
            ], 
            "values": {
                "2": {
                    "appends": { }, 
                    "code": "2", 
                    "value": "女性"
                }
            }
        }
    ]
}
这个应该如何 反序列化的实体类啊
文少 2012-04-05
  • 打赏
  • 举报
回复
http://blog.csdn.net/wyw308/article/details/7398907
qq610694634 2012-04-05
  • 打赏
  • 举报
回复
哈哈,已解决!之前自己的类写的也有问题
具体请参考http://msdn.microsoft.com/zh-cn/library/bb943471.aspx

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧