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

程序员做图网站wordpress 漏洞

程序员做图网站,wordpress 漏洞,建设北京公司网站,国外网站html5从上到下连续变动JavaScriptSerializer 类由异步通信层内部使用#xff0c;用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据。说白了就是能够直接将一个C#对象传送到前台页面成为javascript对象。要添加System.Web.Extensions.dll的引用。该类位于System.Web.Script.Serialization命…JavaScriptSerializer 类由异步通信层内部使用用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据。说白了就是能够直接将一个C#对象传送到前台页面成为javascript对象。要添加System.Web.Extensions.dll的引用。该类位于System.Web.Script.Serialization命名空间下。 一、属性 MaxJsonLength 获取或设置 JavaScriptSerializer 类接受的 JSON 字符串的最大长度。 RecursionLimit 获取或设置用于约束要处理的对象级别的数目的限制。 二、方法 ConvertToType(Of (T)) 将给定对象转换为指定类型。 Deserialize(Of (T)) 将指定的 JSON 字符串转换为 T 类型的对象。 DeserializeObject 将指定的 JSON 字符串转换为对象图。 RegisterConverters 使用 JavaScriptSerializer 实例注册自定义转换器。 Serialize 已重载。 将对象转换为 JSON 字符串。  给个示例主要就是了解了一下Serialize与Deserialize两个方法控制器代码 public class HomeController : Controller{public ActionResult Index(){return View();}public ActionResult GetJson(){JavaScriptSerializer jss new JavaScriptSerializer();Person p new Person(1, 张飞, 20);string json jss.Serialize(p); //序列化成JSONPerson p1 jss.DeserializePerson(json); //再反序列化为Person对象 注意此方法要求目标类有无参构造函数//return Json(json, text/json); //很好用但是返回的终归是字符串返回到前台要解析一下才能变成javascript对象。return Json(new { Id p1.Id, Name p1.Name, Age p1.Age }, text/json);//如果这样写返回到javascript中是不用再解析的直接就是javascript对象}}public class Person{public Person(){ }public Person(int id, string name, int age){this.Id id;this.Name name;this.Age age;}public int Id { get; set; }public string Name { get; set; }public int Age { get; set; }} 前台HTML代码 html headtitlejavascriptSerializer类测试/titlescript src/jQuery.1.8.3.js typetext/javascript/scriptscript typetext/javascript$(function () {$(:button).click(function () {$.ajax({url: /Home/GetJson,dataType: json,type: post,success: function (response) { // var data JSON.parse(response); // $(#Id).text(data.Id); // $(#Name).text(data.Name); // $(#Age).text(data.Age);$(#Id).text(response.Id);$(#Name).text(response.Name);$(#Age).text(response.Age);}})})})/script /head bodyulli idId/lili idName/lili idAge/li/ulinput typebutton value确认 / /body /html    试下4个基础方法与属性 class Program{static void Main(string[] args){// 方法 // RegisterConverters 使用 JavaScriptSerializer 实例注册自定义转换器。 //属性// RecursionLimit 获取或设置用于约束要处理的对象级别的数目的限制。 JavaScriptSerializer jss new JavaScriptSerializer();Console.WriteLine(jss.MaxJsonLength); //默认接受最大的长度是 2097152 这个是接受JSON字符串的最大长度超长会有什么后果呢试下jss.MaxJsonLength 1;Person p new Person(1,关羽,21);//string json jss.Serialize(p); //将对象序列化成Json字符串 //此处报异常使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength 属性设置的值。jss.MaxJsonLength 2097152;//序列化string json jss.Serialize(p); Console.WriteLine(json); //输出 {Id:1,Name:关羽,Age:21}这就是Json格式了//反序列化DeserializePerson p2 jss.DeserializePerson({\Id\:1,\Name\:\关羽\,\Age\:21});Console.WriteLine(p2.Id p2.Name p2.Age); //输出 1 关羽 21//Deserialize的非泛型写法Person p3 jss.Deserialize({\Id\:1,\Name\:\关羽\,\Age\:21},typeof(Person)) as Person; //注意这个方法返回的是object类因此要强制转换成Person类Console.WriteLine(p3.Id p3.Name p3.Age); //同样输出 1 关羽 21object obj jss.DeserializeObject({\Id\:1,\Name\:\关羽\,\Age\:21}); //将Json字符转换为Object类型//Person p4 obj as Person; //此行代码转为的p4为nullPerson p4 jss.ConvertToTypePerson(obj); //尼玛原来这个方法是这样用的知道DeserializeObject转换会为null所以另外写一个吗Console.WriteLine(p4.Name); //输出关羽//非泛型版本Person p5 jss.ConvertToType(obj,typeof(Person)) as Person;Console.WriteLine(p5.Name); //输出关羽Console.ReadKey();}}   实现自定义转换器   将指定的数据类型序列化为Json。Serialize方法是个递归方法会递归地序列化对象的属性因此在序列化一个复杂对象比如DataTable时往往会出现“循环引用”的异常这时候就需要针对复杂类型自定义一个转换器。下面是DataTable的转换器原理是把DataTable转换成一个字典列表后再序列化 所有自定义的转换器都要继承于JavaScriptConverter并实现Serialize、Deserialize方法和SupportedTypes属性其中SupportedTypes属性用于枚举此转换器支持的类型。 class Program{static void Main(string[] args){DataTable dt new DataTable();dt.Columns.Add(Id);dt.Columns.Add(Name);dt.Columns.Add(Age);dt.Rows.Add(1, 关羽, 21);dt.Rows.Add(2, 刘备, 22);dt.Rows.Add(3, 张飞, 20);JavaScriptSerializer jss new JavaScriptSerializer();//注册转换器的方法用于复杂转换  除了实现还需要注册到JavaScriptSerializerjss.RegisterConverters(new JavaScriptConverter[] { new DataTableConverter() });string strJson jss.Serialize(dt);Console.WriteLine(strJson);//输出 {Rows:[{Id:1,Name:关羽,Age:21},{Id:2,Name:刘备,Age:22},{Id:3,Name:张飞,Age:20}]}Console.ReadKey();}}/// summary/// DataTable JSON转换类/// /summarypublic class DataTableConverter : JavaScriptConverter{public override IDictionarystring, object Serialize(object obj, JavaScriptSerializer serializer){DataTable dt obj as DataTable;Dictionarystring, object result new Dictionarystring, object();ListDictionarystring, object rows new ListDictionarystring, object();foreach (DataRow dr in dt.Rows){Dictionarystring, object row new Dictionarystring, object();foreach (DataColumn dc in dt.Columns){row.Add(dc.ColumnName, dr[dc.ColumnName]);}rows.Add(row);}result[Rows] rows;return result;}public override object Deserialize(IDictionarystring, object dictionary, Type type, JavaScriptSerializer serializer){throw new NotImplementedException();}/// summary/// 获取本转换器支持的类型/// /summarypublic override IEnumerableType SupportedTypes{get { return new Type[] { typeof(DataTable) }; }}} 限制序列化的层次 class Program{static void Main(string[] args){JavaScriptSerializer jss new JavaScriptSerializer();Console.WriteLine(jss.RecursionLimit); //默认的序列化层次是100Person p1 new Person(1, 刘备, 24);p1.p new Person(2, 关羽, 23);p1.p.p new Person(3, 张飞, 21);string strJson jss.Serialize(p1);Console.WriteLine(strJson);//输出 {Id:1,Name:刘备,Age:24,p:{Id:2,Name:关羽,Age:23,p:{Id:3,Name:张飞,Age:21,p:null}}}//现在将层次减少到1jss.RecursionLimit 1;string strJson2 jss.Serialize(p1);//这行代码是报异常的显示已超出 RecursionLimit。 这就是这个属性的作用//最后再来说一个特性比如如果我有某一个属性不希望它序列化那么可以设置添加Console.ReadKey();}}public class Person{public Person(){ }public Person(int id, string name, int age){this.Id id;this.Name name;this.Age age;}public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } //里面嵌套一个Personpublic Person p { get; set; }} [ScriptIgnore]禁止某属性序列化  class Program{static void Main(string[] args){JavaScriptSerializer jss new JavaScriptSerializer();Person p new Person(1,刘备,24);Console.WriteLine(jss.Serialize(p));File.WriteAllText(D:\123.txt, jss.Serialize(p)); //输出 {Id:1,Age:24}Console.ReadKey();}}public class Person{public Person(){ }public Person(int id, string name, int age){this.Id id;this.Name name;this.Age age;}public int Id { get; set; } [ScriptIgnore]public string Name { get; set; } public int Age { get; set; }}
http://www.zqtcl.cn/news/949517/

相关文章:

  • 海南做网站公司哪家好中国人做外贸生意的网站
  • 没有网站怎么做cpa成都百度推广公司地址
  • 龙湖地产 网站建设高端上海网站设计公司
  • 触屏手机网站模板装修设计软件排名
  • 怎么做盗文网站郑州建设教育培训中心
  • 网站安全解决方案嵌入式软件工程师培训
  • 怎么做一种网站为别人宣传网站界面切片做程序
  • 麻涌网站建设河北网站建设联系方式
  • 建设银行官方网站打不开啊寮步仿做网站
  • 一个人可做几次网站备案峰峰网站建设
  • 怎么盗号网站怎么做北京高端网站设计外包公司
  • 著名的淘宝客网站wordpress博客内容预览
  • 成都网站seo公司甘肃网站建设推广
  • 做网站加班网站项目意义
  • 在虚拟机中如何做二级域名网站个人网站做哪种能赚钱
  • 贵州建设水利厅考试网站wordpress主查询翻页
  • 网站优化网络推广seo天津建设工程信息网几点更新
  • 兰州网站seo技术厂家比较实用的h5网页建设网站
  • 怎样让自己做的网站被百度收录动漫制作软件
  • 西安网站制作哪家公司好怎么向企业推销网站建设
  • 电子商务网站建设新闻深圳坂田网站设计公司有哪些
  • 上海电子商城网站制作wordpress循环该分类子分类
  • 茶山做网站教育网站建设计划书
  • 成品门户网站源码免费海外网络加速器免费
  • 企业网站怎么建设公司深圳企业招聘信息最新招聘信息
  • 天津网站经营性备案下载网站上的表格 怎么做
  • 胶州企业网站设计十大互联网营销公司
  • 视频解析wordpresswordpress 优化版本
  • 柳州网站建设哪家便宜广东省建设厅三库一平台
  • 云南城市建设官方网站wordpress和织梦哪个好