Json的序列化和反序列化

发布时间:2012-12-31    发布:    分类:技术文档

1、引用命名空间:

		using System.Runtime.Serialization;

 

2、json的序列化和反序列化的方法:

		public class JsonHelper
    {
        /// <summary>
        /// 序列化
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="t"></param>
        /// <returns></returns>
        public static string JsonSerializer<T>(T t)
        {
            string jsonString = string.Empty;
            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
            MemoryStream ms = new MemoryStream();
            ser.WriteObject(ms, t);
            jsonString = Encoding.UTF8.GetString(ms.ToArray());
            ms.Close();
            return jsonString;
        }
        /// <summary>
        /// 反序列化
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="jsonString"></param>
        /// <returns></returns>
        public static T JsonDeserialize<T>(string jsonString)
        {
            T obj = default(T);
            DataContractJsonSerializer ser=new DataContractJsonSerializer(typeof(T));
            MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
            obj = (T)ser.ReadObject(ms);            
            return obj;
        }
    }

3、现在先准备一个Person类:

		    class Person
    {
        [DataMemberAttribute]
        public string Name { get; set; }
        [DataMemberAttribute]
        public int Age { get; set; }
        [DataMemberAttribute]
        public string Gender { get; set; }
    }

4、现在就用JsonHelper方法把Person类的对象序列化成Json格式。

		            Person p = new Person { Name = "张三", Age = 12, Gender = "" };
            string str = JsonHelper.JsonSerializer<Person>(p);
            Console.WriteLine(str); 

5、结果:

		{"Age":12,"Gender":"","Name":"张三"} 

6、再把Json格式反序列化为Person类型:

		            p = JsonHelper.JsonDeserialize<Person>(str);
            Console.WriteLine("{0},{1},{2}",p.Name,p.Age,p.Gender); 

7、结果:

		张三,12,男
查看 [2468]   评论 [0] 
相关标签: 程序开发 
文章评论
暂无数据!
我来说两句
昵 称:
评 论:
   
咨询电话:020-61136292 87569708 61004412 61004413
讯博官网 | 走进讯博 | 整合营销 | 案例解读 | 资讯中心 | 案例欣赏 | 产品体验区 | 客户如是说 | 联系我们
版权所有 © 2003-2014 广州讯博网络科技有限公司 粤ICP备08107356号 开心一刻
Website Design & Power by:Cenbel.com