zoukankan      html  css  js  c++  java
  • C# 编写通用的JSON数据进行序列化和反序列化

    注意事项:使用JSON系列化和反系列化,必须要添加引用System.Runtime.Serialization。

        1.通用类代码如下:

        /// <summary>
        /// JSON序列化和反序列化辅助类
        /// </summary>
        public class JsonHelper
        {
            /// <summary>
            /// JSON序列化
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="t"></param>
            /// <returns></returns>
            public static string JsonSerializer<T>(T t)
            {
                DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
                MemoryStream ms = new MemoryStream();
                ser.WriteObject(ms, t);
                string jsonString = Encoding.UTF8.GetString(ms.ToArray());
                ms.Close();
                return jsonString;
            }

            /// <summary>
            /// JSON反序列化
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="jsonString"></param>
            /// <returns></returns>
            public static T JsonDeserialize<T>(string jsonString)
            {
                DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
                MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
                T obj = (T)ser.ReadObject(ms);
                ms.Close();
                return obj;
            }
        }

         2.定义调用类,如下:

        /// <summary>
        /// 定义类
        /// </summary>
        public class Person
        {
            public string Name { get; set; }
            public int Age { get; set; }
        }

        3.调用系列化和反系列化的操作如下:

                Person p = new Person();
                p.Name = "陈磊";
                p.Age = 29;

                //调用JSON系列化

                string strJson = JsonHelper.JsonSerializer<Person>(p);
                Console.WriteLine(strJson);

               //调用JSON反系列化
                string strDJson = "{"Age":28,"Name":"陈磊"}";
                Person dp = JsonHelper.JsonDeserialize<Person>(strDJson);
                Console.WriteLine(dp.Name + "," + dp.Age);

  • 相关阅读:
    Android 生命周期
    struts标签,<s:textfield>嵌套<s:property>的问题
    设置input 内容居中显示 .
    Jquery实现遮罩层,就是弹出DIV周围都灰色不能操作
    如何用Jquery实现 ,比如点击图片之后 ,该图片变成向下的箭头,再点击向下箭头的图片 又变成原始图片呢
    html制作,点击文字超链接显示文本框,再点击文字超链接隐藏文本框
    hibernate mysql视图操作
    Java 日期时间 Date类型,long类型,String类型表现形式的转换
    Spring启动异常: cvc-elt.1: Cannot find the declaration of element 'beans'(转)
    解决不联网无法启动struts2问题
  • 原文地址:https://www.cnblogs.com/wlming/p/4778889.html
Copyright © 2011-2022 走看看