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);

  • 相关阅读:
    udelay、mdelay、ndelay、msleep使用比较说明
    linux多线程驱动中调用udelay()对整个系统造成的影响(by liukun321咕唧咕唧)
    linux设备驱动那点事儿之平台设备理论篇
    misc_register、 register_chrdev 的区别总结
    platform_driver与file_operations两种方法开发led驱动
    rc522 ,pn544区别
    内核驱动中常见的miscdevice、platform_device、platform_driver
    file_operations结构2
    file_operations结构体解析 1
    android5.0问题
  • 原文地址:https://www.cnblogs.com/wlming/p/4778889.html
Copyright © 2011-2022 走看看