C#中如何解析这种json转化成list对象集合,求解

Mr_fenglebin 2014-03-18 05:20:23
{"Header":{"Flag":true,"Messages":"","PageCount":0,"RowCount":0},"Tbody":[{"BBS_Title":"13种洗发露铅含量检测 全部合格!","Hits":65,"Intime":"\/Date(1375169588573+0800)\/","SFID":30765,"Threadid":4869926,"Username":"v2764104"},{"BBS_Title":"气质联用应用技术培训 8月12日","Hits":47,"Intime":"\/Date(1375163275633+0800)\/","SFID":30760,"Threadid":0,"Username":""},{"BBS_Title":"天瑞仪器资产重组大猜想:并购or被并购","Hits":1122,"Intime":"\/Date(1374802201867+0800)\/","SFID":30701,"Threadid":4870344,"Username":""},{"BBS_Title":"爱丁堡仪器今夏来袭,诚征论文赢手机","Hits":207,"Intime":"\/Date(1374800978947+0800)\/","SFID":30700,"Threadid":0,"Username":""},{"BBS_Title":"喜讯:2013上半年优秀会员评选结果揭晓","Hits":826,"Intime":"\/Date(1374638092677+0800)\/","SFID":30669,"Threadid":4868003,"Username":""},{"BBS_Title":"惊愕:菊花茶尽有名堂——虫子!","Hits":502,"Intime":"\/Date(1374630389867+0800)\/","SFID":30666,"Threadid":4865932,"Username":"unht"},{"BBS_Title":"家用自来水Pb含量验证,你家的呢?","Hits":378,"Intime":"\/Date(1374572221150+0800)\/","SFID":30654,"Threadid":4866772,"Username":"denx5201314"},{"BBS_Title":"两种方法测定水中砷含量的经验探讨","Hits":460,"Intime":"\/Date(1374221687573+0800)\/","SFID":30597,"Threadid":4858951,"Username":"ning-meng"},{"BBS_Title":"《XRF傻瓜书》","Hits":109,"Intime":"\/Date(1374220709343+0800)\/","SFID":30596,"Threadid":4848862,"Username":"yue_qiu"},{"BBS_Title":"东北大米 vs 南方大米 镉含量PK!","Hits":881,"Intime":"\/Date(1374219637390+0800)\/","SFID":30595,"Threadid":4857844,"Username":"yiyuxiner"}]}
...全文
6384 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
i1029200902 2014-03-19
  • 打赏
  • 举报
回复
Newtonsoft.Json.dll
Mr_fenglebin 2014-03-19
  • 打赏
  • 举报
回复
 static void Main(string[] args)
        {

            string Url = "http://wcfbbs.instrument.com.cn/BBSActivity/HomeFocusInfo.GetSS_Home_FocusList?" + "SHC_ID=" + 1 + "&type=" + 1;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
            request.Method = "GET";
            request.ContentType = "text/html;charset=UTF-8";

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
            string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();
            RecommendModel products = new RecommendModel();
            products = Deserialize<RecommendModel>(retString);
            foreach (var item in products.Tbody)
            {
                Console.WriteLine(item.BBS_Title + ":" + item.Hits + "," + item.SFID + "," + item.Threadid);
            }
            Console.WriteLine("执行完成!");
            Console.ReadKey();
        }
        public static List<T> JSONStringToList<T>(this string JsonStr)
       {
        JavaScriptSerializer Serializer = new JavaScriptSerializer();
        List<T> objs = Serializer.Deserialize<List<T>>(JsonStr);
        return objs;
       }
        public static T Deserialize<T>(string json)
       {
        T obj = Activator.CreateInstance<T>();
        using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
        {
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
            return (T)serializer.ReadObject(ms);
        }

}
还是我来告诉你们吧。。。这样一下就解析出来了,
public class TbodyRecommend
    {
        /// <summary>标题 </summary>
        [DataMember(Name = "BBS_Title")]
        public string BBS_Title { get; set; }

        /// <summary>点击次数 </summary>
        [DataMember(Name = "Hits")]
        public Int32 Hits { get; set; }

        /// <summary>发布时间 </summary>
        [DataMember(Name = "Intime")]
        public string Intime { get; set; }

        /// <summary>业务流标识符 </summary>
        [DataMember(Name = "SFID")]
        public Int32 SFID { get; set; }

        /// <summary>线程标识id </summary>
        [DataMember(Name = "Threadid")]
        public Int32 Threadid { get; set; }

        /// <summary>发布者</summary>
        [DataMember(Name = "Username")]
        public string Username { get; set; }
    }

    [Serializable]
    public class HeaderRecommend
    {
        /// <summary>状态 </summary>
        [DataMember(Name = "Flag")]
        public bool Flag { get; set; }

        /// <summary>通知</summary>
        [DataMember(Name = "Messages")]
        public string Messages { get; set; }

        /// <summary>总页数 </summary>
        [DataMember(Name = "PageCount")]
        public Int32 PageCount { get; set; }

        /// <summary>总条数 </summary>
        [DataMember(Name = "RowCount")]
        public Int32 RowCount { get; set; }

    }
 public class RecommendModel
    {
        [DataMember(Name = "Header")]
        public HeaderRecommend Header;

        [DataMember(Name = "Tbody")]
        public List<TbodyRecommend> Tbody;
    }
i1029200902 2014-03-19
  • 打赏
  • 举报
回复

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Converters;

        private void button1_Click(object sender, EventArgs e)
        {
            string str = "{'Header':{'Flag':true,'Messages':'','PageCount':0,'RowCount':0},'Tbody':[{'BBS_Title':'13种洗发露铅含量检测 全部合格!','Hits':65,'Intime':'\\/Date(1375169588573+0800)\\/','SFID':30765,'Threadid':4869926,'Username':'v2764104'},{'BBS_Title':'气质联用应用技术培训 8月12日','Hits':47,'Intime':'\\/Date(1375163275633+0800)\\/','SFID':30760,'Threadid':0,'Username':''},{'BBS_Title':'天瑞仪器资产重组大猜想:并购or被并购','Hits':1122,'Intime':'\\/Date(1374802201867+0800)\\/','SFID':30701,'Threadid':4870344,'Username':''},{'BBS_Title':'爱丁堡仪器今夏来袭,诚征论文赢手机','Hits':207,'Intime':'\\/Date(1374800978947+0800)\\/','SFID':30700,'Threadid':0,'Username':''},{'BBS_Title':'喜讯:2013上半年优秀会员评选结果揭晓','Hits':826,'Intime':'\\/Date(1374638092677+0800)\\/','SFID':30669,'Threadid':4868003,'Username':''},{'BBS_Title':'惊愕:菊花茶尽有名堂——虫子!','Hits':502,'Intime':'\\/Date(1374630389867+0800)\\/','SFID':30666,'Threadid':4865932,'Username':'unht'},{'BBS_Title':'家用自来水Pb含量验证,你家的呢?','Hits':378,'Intime':'\\/Date(1374572221150+0800)\\/','SFID':30654,'Threadid':4866772,'Username':'denx5201314'},{'BBS_Title':'两种方法测定水中砷含量的经验探讨','Hits':460,'Intime':'\\/Date(1374221687573+0800)\\/','SFID':30597,'Threadid':4858951,'Username':'ning-meng'},{'BBS_Title':'《XRF傻瓜书》','Hits':109,'Intime':'\\/Date(1374220709343+0800)\\/','SFID':30596,'Threadid':4848862,'Username':'yue_qiu'},{'BBS_Title':'东北大米 vs 南方大米 镉含量PK!','Hits':881,'Intime':'\\/Date(1374219637390+0800)\\/','SFID':30595,'Threadid':4857844,'Username':'yiyuxiner'}]}";
            JObject o = JObject.Parse(str);
            //Console.WriteLine(o["Tbody"].ToString());

            JArray json = (JArray)o["Tbody"];
            for (int j = 0; j < json.Count; j++)
            {
                JObject jsonobj = (JObject)json[j];
                Console.WriteLine(jsonobj["BBS_Title"].ToString() + "|" + jsonobj["Hits"].ToString());
            }
        }
Mr_fenglebin 2014-03-18
  • 打赏
  • 举报
回复
我想使用DataContractJsonSerializer来实现序列化成集合。我这里不知道哪里写错了。出来的长度是零
huyang77 2014-03-18
  • 打赏
  • 举报
回复
http://www.cnblogs.com/cyclone77/p/3604868.html 前台传JSON给后台,后台遍历

13,347

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET技术前瞻
社区管理员
  • .NET技术前瞻社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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