加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

json 序列化与反序列化C#类

发布时间:2020-12-15 17:52:01 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 public static class JsonSerializer { private static ITracing _tracing = TracingManager.GetTracing(typeof(JsonSerializer)); /// summary ///

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

    public static class JsonSerializer  
        {  
            private static ITracing _tracing = TracingManager.GetTracing(typeof(JsonSerializer));  
      
      
            /// <summary>  
            /// 将指定对象序列化为 JavaScript 对象表示法 (JSON) 数据,并将生成的 JSON 写入流中。  
            /// </summary>  
            /// <typeparam name="T">对象类型</typeparam>  
            /// <param name="stream">流对象</param>  
            /// <param name="obj">序列化对象</param>  
            public static void Serialize<T>(Stream stream,T obj)  
            {  
                JsonSerializeProxy<T>.Default.Serialize(stream,obj);  
            }  
      
      
            /// <summary>  
            /// 将指定对象序列化为 JavaScript 对象表示法 (JSON) 数据,并返回对应的字符串。  
            /// </summary>  
            /// <typeparam name="T">对象类型</typeparam>  
            /// <param name="obj">序列化对象</param>  
            /// <returns>JavaScript 对象表示法 (JSON) 字符串</returns>  
            public static string Serialize<T>(T obj)  
            {  
                using (MemoryStream ms = new MemoryStream())  
                {  
                    JsonSerializeProxy<T>.Default.Serialize(ms,obj);  
      
      
                    string jsonStr = Encoding.UTF8.GetString(ms.ToArray());  
      
      
                    _tracing.InfoFmt("{0} json serialize result: {1}",typeof(T).ToString(),jsonStr);  
      
      
                    return jsonStr;  
                }  
            }  
      
      
            public static T DeSerialize<T>(string jsonStr)  
            {  
                return JsonSerializeProxy<T>.Default.DeSerialize(jsonStr);  
            }  
        }  
      
      
        public class JsonSerializeProxy<T>  
        {  
            private static readonly JsonSerializeProxy<T> _default = new JsonSerializeProxy<T>();  
            private DataContractJsonSerializer _serializer;  
      
      
            public static JsonSerializeProxy<T> Default  
            {  
                get  
                {  
                    return _default;  
                }  
            }  
      
      
            private JsonSerializeProxy()  
            {  
                _serializer = new DataContractJsonSerializer(typeof(T));  
            }  
      
      
            public void Serialize(Stream stream,T obj)  
            {  
                _serializer.WriteObject(stream,obj);  
            }  
      
      
            /// <summary>  
            /// 将JSON字符串反序列化为对象  
            /// </summary>  
            /// <param name="jsonStr">json字符串</param>  
            /// <returns></returns>  
            public T DeSerialize(string jsonStr)  
            {  
                MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonStr));  
                T obj = (T)_serializer.ReadObject(ms);  
                return obj;  
            }  
      
      
        }  

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读