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

json 序列化与反序列化C#类,第1张

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

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

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

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的json 序列化与反序列化C#类全部内容,希望文章能够帮你解决json 序列化与反序列化C#类所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1237635.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存