当前位置: 首页 > news >正文

美女网站做国外广告怎么样网站备案查询工信部官网

美女网站做国外广告怎么样,网站备案查询工信部官网,网络营销课程性质,2023年中国500强企业前言:作为开发人员,对象的序列化恐怕难以避免。楼主也是很早以前就接触过序列化,可是理解都不太深刻,对于用哪种方式去做序列化更是随波逐流——项目中原来用的什么方式照着用就好了。可是这么多年自己对于这东西还是挺模糊的&…

      前言:作为开发人员,对象的序列化恐怕难以避免。楼主也是很早以前就接触过序列化,可是理解都不太深刻,对于用哪种方式去做序列化更是随波逐流——项目中原来用的什么方式照着用就好了。可是这么多年自己对于这东西还是挺模糊的,今天正好有时间,就将原来用过的几种方式总结了下,也算是做一个记录,顺便做了下性能测试。楼主算了下,从使用序列化到现在,用到的无非下面几种方式:(1)JavaScriptSerializer方式;(2)DataContract方式;(3)Newtonsoft.Json.

1、准备工作:要对这三种方式分别作测试,必须要将相应的内库引用进来。

(1)JavaScriptSerializer这个类是.Net内置的,属于System.Web.Script.Serialization这个命名空间下面。需要引用System.Web.Extensions这个dll。

(2)DataContract方式也是.net内置的,主要使用的DataContractJsonSerializer这个类,属于System.Runtime.Serialization.Json这个命名空间。需要引用System.Runtime.Serialization这个dll。

(3)Newtonsoft.Json是第三方的dll,但是Visual Studio 对它做了很好的支持。使用方式有两种:一种是去网上下载最新的dll,然后添加引用即可;第二种是直接使用NuGet安装这个包。方式如下:

按照步骤安装即可。

 

2、类库准备完毕,还需要提供几个通用的方法。自己分别封装了JavaScriptSerializer和DataContract方式两个方法,代码如下:

复制代码
    #region DataContract序列化public static class DataContractExtensions{/// <summary>/// 将对象转化为Json字符串/// </summary>/// <typeparam name="T">对象类型</typeparam>/// <param name="instanse">对象本身</param>/// <returns>JSON字符串</returns>public static string ToJsonString<T>(this T instanse){try{DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(T));using (MemoryStream ms = new MemoryStream()){js.WriteObject(ms, instanse);ms.Flush();ms.Seek(0, SeekOrigin.Begin);StreamReader sr = new StreamReader(ms);return sr.ReadToEnd();}}catch{return String.Empty;}}/// <summary>/// 将字符串转化为JSON对象,如果转换失败,返回default(T)/// </summary>/// <typeparam name="T">对象类型</typeparam>/// <param name="s">字符串</param>/// <returns>转换值</returns>public static T ToJsonObject<T>(this string s){try{DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(T));using (MemoryStream ms = new MemoryStream()){StreamWriter sw = new StreamWriter(ms);sw.Write(s);sw.Flush();ms.Seek(0, SeekOrigin.Begin);return (T)js.ReadObject(ms);}}catch{return default(T);}}} #endregion#region JavaScriptSerializer方式序列化public static class JavascriptExtentions{public static string ToScriptJsonString<T>(this T instanse){try{JavaScriptSerializer js = new JavaScriptSerializer();return js.Serialize(instanse);}catch{return String.Empty;}}public static T ToScriptJsonObject<T>(this string s){try{JavaScriptSerializer js = new JavaScriptSerializer();return js.Deserialize<T>(s);}catch{return default(T);}}} #endregion
复制代码

至于Newtonsoft.Json,自己有对应的方法,自己也封装了几个方法:

复制代码
public class Newtonsoft_Common{#region 序列化// 将对象(包含集合对象)序列化为Jsonpublic static string SerializeObjToJson(object obj){string strRes = string.Empty;try{strRes = JsonConvert.SerializeObject(obj);}catch { }return strRes;}//将xml转换为jsonpublic static string SerializeXmlToJson(System.Xml.XmlNode node){string strRes = string.Empty;try{strRes = JsonConvert.SerializeXmlNode(node);}catch{ }return strRes;}//支持Linq格式的xml转换public static string SerializeXmlToJson(System.Xml.Linq.XNode node){string strRes = string.Empty;try{strRes = JsonConvert.SerializeXNode(node);}catch{ }return strRes;}#endregion#region 反序列化//将json反序列化为实体对象(包含DataTable和List<>集合对象)public static T DeserializeJsonToObj<T>(string strJson){T oRes = default(T);try{oRes = JsonConvert.DeserializeObject<T>(strJson);}catch { }return oRes;}//将Json数组转换为实体集合public static List<T> JsonLstToObjs<T>(List<string> lstJson){List<T> lstRes = new List<T>();try{foreach (var strObj in lstJson){//将json反序列化为对象var oRes = JsonConvert.DeserializeObject<T>(strObj);lstRes.Add(oRes);}}catch { }return lstRes;}#endregion}
复制代码

 

 

还有就是提供测试数据的两个方法:

 View Code

 

3、测试开始之前,先介绍下,本篇测试分别通过强类型对象和若类型的DataTable分别去做序列化和反序列化的测试。测试代码:

 View Code

 

4、测试结果:

先说强类型对象的结果:

(1)集合数量100和1000时,序列化和反序列化三种方式差别不大:

(2)当超过10000时,

(3)继续加大数据量

 

 

弱类型DataTable的测试结果:

JavaScriptSerializer方式直接报错:

DataContract方式需要提供DataTable的表名,序列化得到是DataTable的Xml

 

Newtonsoft.Json方式可以实现和Json数据的序列化和反序列化。

 

5、测试总结:

(1)总的来说,DataContract和Newtonsoft.Json这两种方式效率差别不大,随着数量的增加JavaScriptSerializer的效率相对来说会低些。

(2)对于DataTable的序列化,如果要使用json数据通信,使用Newtonsoft.Json更合适,如果是用xml做持久化,使用DataContract合适。

(3)随着数量的增加JavaScriptSerializer序列化效率越来越低,反序列化和其他两种相差不大。

(4)后来发现当对象的DataTime类型属性不赋值时,DataContract和JavaScriptSerializer这两种方式序列化都会报错,而用Newtonsoft.Json方式可以正常序列化。所以看来在容错方便,还是Newtonsoft.Json比较强。

 

以上只是楼主自己做的简单测试,可能存在不够严谨的地方,望各位大虾拍砖指正~~





本文转自懒得安分博客园博客,原文链接:http://www.cnblogs.com/landeanfen/p/4627383.html,如需转载请自行联系原作者

http://www.lbrq.cn/news/2694673.html

相关文章:

  • wordpress多站点批量添加网站排名查询软件
  • 上海做网站推广公司百度搜索引擎营销案例
  • 西部数据网站管理助手v3.0推广网站有效的免费方法
  • 网站免费下载软件佛山百度关键词排名
  • 做seo推广公司网站郑州抖音推广
  • 网站建设公司厂人大常委会委员长
  • 牛商网做网站怎么样app优化
  • 做高端网站的网络公司网站服务器搭建
  • 物流网络化seo网站排名优化公司
  • 深圳企业企业网站建设下载百度2023最新版安装
  • 网站后台安全密码seo的优化方案
  • 免费做网页的网站杭州百度快速排名提升
  • 做网站如何抓住客户的需求爱站工具
  • 1核2g 做网站北京网站seo
  • asp.net 做网站源代码深圳网站设计公司
  • 上传wordpress到lampseo怎么优化方法
  • 做网站和游戏是如何赚钱夫唯老师seo
  • 广州科技网站建设成都seo经理
  • 网站引导视频怎么做产品质量推广营销语
  • 做淘宝先在批发网站上拿货百度竞价投放
  • 陕西网站建设咨询网络运营具体做什么
  • 如何用dw做旅游网站目录网站权重怎么查
  • 盘古建站模板搜索引擎有哪些网站
  • wordpress网站打不开星巴克营销策划方案
  • 足球网页制作模板seo网络推广是什么意思
  • 专门做网站无锡seo网站管理
  • 平顶山公司做网站可以放友情链接的网站
  • 网站建设制作设计珠海企业网站推广优化
  • 做视频网站用什么模板网络营销典型案例
  • 厦门有什么网站制作公司黄页引流推广
  • 集成电路学习:什么是CV计算机视觉
  • 【KO】android 面试 算法
  • 机器学习 TF-IDF提取关键词,从原理到实践的文本特征提取利器​
  • 请求报文和响应报文(详细讲解)
  • MyBatis执行器与ORM特性深度解析
  • 第2节 大模型分布式推理架构设计原则