码迷,mamicode.com
首页 > Web开发 > 详细

.net Json和Xml解析

时间:2015-03-21 19:53:04      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

引言

   Json和Xml是现在跨平台传输数据的主流格式,关于它们的解析,网上资料很多,我稍作整理,写成一个小demo,方便日后使用.

JSON解析

    能进行json解析的类库有很多,例如JavaScriptSerializer,DataContractJsonSerializer和开源类库Newtonsoft.Json.这里使用Newtonsoft.Json作个演示.

       1.定义示例的类

   public class Data
    {
        public string Name { get; set; }
        public int Jobnum { get; set; }
        public DateTime Date { get; set; }
    }

   

        2.调用静态类JsonConvert进行序列化和反序列化,很简单,代码如下

          List<Data> datas = new List<Data>();
          datas.Add(new Data { Jobnum = 1, Name = "张三" ,Date=DateTime.Now});
          datas.Add(new Data { Jobnum = 2, Name = "李四", Date = DateTime.Now });
          string reslut=  JsonConvert.SerializeObject(datas);
          List<Data>  dataresult =  JsonConvert.DeserializeObject<List<Data>>(reslut);

 

XML解析

   1.xml解析需要用到XmlSerializer类,对象类要加上[Serializable],如下

 

   [Serializable]
    public class Data
    {
        public string Name { get; set; }
        public int Jobnum { get; set; }
        public DateTime Date { get; set; }
    }

 

    2.编写XMLSerialize静态解析类,代码如下

public static class XMLSerialize
    {

        public static string Serialize<T>(object obj)
        {
            XmlSerializer xml = new XmlSerializer(typeof(T));

            using (StringWriter reader = new StringWriter())
            {
                xml.Serialize(reader, obj);
                return reader.ToString();
            }
        }

        public static T DeSerialize<T>(string xmlstr)
        {
            XmlSerializer xml = new XmlSerializer(typeof(T));
            using (StringReader reader = new StringReader(xmlstr))  
            {
                return (T)xml.Deserialize(reader);  
            }  
        }
    }

 

    3.调用静态类XMLSerialize方法进行序列和反序列化

            List<Data> datas = new List<Data>();
            datas.Add(new Data { Jobnum = 1, Name = "张三", Date = DateTime.Now });
            datas.Add(new Data { Jobnum = 2, Name = "李四", Date = DateTime.Now });

            string xmlstr = XMLSerialize.Serialize<List<Data>>(datas);
     
            List<Data> obj = XMLSerialize.DeSerialize<List<Data>>(xmlstr);

 

小结

    本文是json和xml一个简单示例,用到了常用的解析方式,如果您有更好的方法,请不吝指教,感激不尽!

 

.net Json和Xml解析

标签:

原文地址:http://www.cnblogs.com/caizl/p/4356012.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!