zoukankan      html  css  js  c++  java
  • C#序列化及反序列化Json对象通用类JsonHelper

    当今的程序界Json大行其道。因为Json对象具有简短高效等优势,广受广大C#码农喜爱。这里发一个序列化及反序列化Json对象通用类库,希望对大家有用。

        public class JsonHelper
        {
            #region 对象类型序列化为json 字符
            /// <summary>
            /// 对象类型序列化为json 字符
            /// </summary>
            /// <typeparam name="T">实体类型</typeparam>
            /// <param name="jsonObject">待转换实体</param>
            /// <param name="encoding">编码格式</param>
            /// <returns>string</returns>
            public static string ObjectToJson<T>(Object jsonObject, Encoding encoding)
            {
                string result = String.Empty;
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                {
                    serializer.WriteObject(ms, jsonObject);
                    result = encoding.GetString(ms.ToArray());
                }
                return result;
            }
            #endregion
    
            #region json字符反序列化为对象
            /// <summary>
            /// json字符反序列化为对象
            /// </summary>
            /// <typeparam name="T">实体类型</typeparam>
            /// <param name="json">json字符串</param>
            /// <param name="encoding">编码格式</param>
            /// <returns>T</returns>
            public static T JsonToObject<T>(string json, Encoding encoding)
            {
                T resultObject = default(T);
                try
                {
                    resultObject = Activator.CreateInstance<T>();
                    DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
                    using (System.IO.MemoryStream ms = new System.IO.MemoryStream(encoding.GetBytes(json)))
                    {
                        resultObject = (T)serializer.ReadObject(ms);
                    }
                }
                catch { }
                return resultObject;
            }
            #endregion
        }
  • 相关阅读:
    how to .bson file into mongodb
    celery 源生框架项目
    @property装饰器将getter方法变成了属性
    类继承实现--停车场可用车位
    vue 基于 webpack 中使用 ECharts
    windows10 docker 从C盘迁移到其他盘
    python 布隆过滤器的下载使用
    深入系统同步锁机制 GIL
    男神鹏:ubantu 18.0.4 安装go 1.10.4 和环境变量的配置以及卸载
    男神鹏:命令 'ls' 可在 '/bin/ls' 处找到
  • 原文地址:https://www.cnblogs.com/xxaxx/p/5844958.html
Copyright © 2011-2022 走看看