怎么制作网站教程视频广州定制网站开发

news/2025/9/23 11:35:50/文章来源:
怎么制作网站教程视频,广州定制网站开发,qq在线登录,无锡 做网站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.mzph.cn/news/912397.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上海h5网站建设脑洞大开的创意设计

本项目以Springboot 2.7.11和vue2做参考示例 第一步 展示前后端代码的成品 前端Vue 后端Java 项目写完后,差不多就是这个样子,仅供参考! 第二步 开始打包前后端项目 前端打包的方式有以下几种: 方法1: #直接打包&#xff0…

汽贸公司网站建设抖音代运营介绍

HTTP协议定义了多种请求方法,用于不同的操作。最常见的有 GET、POST 和 PUT。 GET:GET 是最常用的方法,通常用于请求服务器发送某个资源。GET 请求只通过 URL 传送数据,数据信息会附在 URL 之后,以参数的形式附加。由于这种传送方式的限制,GET 请求的数据量较小,且安全性…

工会网站建设请示一级消防工程师考试试题及答案

1、认识Block Block封装了一段代码,可以在任何时候执行Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值,它和传统的函数指针很类似,但是有区别:block是inline(内联函数)的&#x…

Gitee:本土化代码托管平台如何重塑中国开发者协作生态

Gitee:本土化代码托管平台如何重塑中国开发者协作生态 在全球化与数字化双重浪潮的冲击下,软件开发行业正经历着前所未有的变革。作为这一变革的核心基础设施,代码托管平台的重要性愈发凸显。在这一领域中,Gitee凭…

详细介绍:麒麟v10服务器安装libvirt

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

WEB项目引入druid监控配置

1、web.xml<!-- 添加Web应用等监控--><filter><filter-name>DruidWebStatFilter</filter-name><filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class><…

Computer Graphics Tutorial

https://www.tutorialspoint.com/computer_graphics/index.htm

网站设计电脑培训学校wordpress导航菜单下拉

原文地址:http://www.dotnetcurry.com/dotnet/1360/concurrent-programming-dotnet-core 今天我们购买的每台电脑都有一个多核心的 CPU&#xff0c;允许它并行执行多个指令。操作系统通过将进程调度到不同的内核来发挥这个结构的优点。然而&#xff0c;还可以通过异步 I/O 操作…

CF1874(CF Round 901) 总结

CF1874(CF Round 901) 总结 A 显然若干轮之后,每两次操作不会改变它们的苹果,于是让 \(K\) 对一个较小数取 \(\min\) 然后暴力做即可。 B 每一位是独立的,对于 \(a,b,m\) 都相同的位,操作后的结果一定相同,所以只…

南通网站建设南通怎么修改网站后台权限

服务器安装IIS&#xff1a; 微软官网下载SDK&#xff1a; 下载Runtime官网&#xff1a;https://dotnet.microsoft.com/download/dotnet-core 安装成功重启IIS&#xff1a; VS发布项目&#xff1a;

ps个人网站建设英文网站建设的问题

随着ChatGPT引领的AI破圈&#xff0c;各行各业掀起了AI落地的潮流&#xff0c;从智能客服、智能写作、智能监控&#xff0c;到智能医疗、智能家居、智能金融、智能农业&#xff0c;谁能快速将AI与传统业务相结合&#xff0c;谁就将成为企业数字化和智能化变革的优胜者。然而&am…

国内购物网站哪个最好网络广告策划方案怎么做

前两天有一个学html5前端小美女问我一个有关文字阴影的效果怎么去实现。她和我说文字阴影嘛,她也知道text-shadow,.但是却做不出想要的样子,其实css3的新功能是很强大的,不要把你的思想太过于局限化,好了,闲话也不多说,咱们就先来看看这个文本阴影. 一.文字阴影text-shadow 文…

wordpress知更鸟more排名好的网站关键词优化企业

Dataload介绍 DataLoad是一个针对Oracle开发的数据录入工具(也适用其他程序),其工作原理是模仿键盘的操作,将数据和键盘的按键以表格的形式存储起来。当你需要在目标程序界面中输入数据的时候,dataload根据所定义的数据和键盘按键顺序,将数据录入。 Dataload常用命令 Da…

好网站的特点网站模板制作与安装教程

2023-12-03每日一题 一、题目编号 1423. 可获得的最大点数二、题目链接 点击跳转到题目位置 三、题目描述 几张卡牌 排成一行&#xff0c;每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动&#xff0c;你可以从行的开头或者末尾拿一张卡牌&#x…

网站开发流程表微网站建设公司

2020 MATLAB EXPO 中国线上用户大会一切转型始于数据和模型2020 年 7 月 21-24 日 | 线上直播MATLAB 和 Simulink&#xff0c;作为业界普遍使用的科学计算与模型仿真软件&#xff0c;已被全球的工程师和科学家们广泛应用于加快汽车、航空、电子、金融服务、生物医药以及其他行业…

长沙手机网站设计郴州旅游

楔子四年前我虽然也写了很多年代码&#xff0c;由于公司虽然规模不小&#xff0c;却并非一家规范化的软件公司&#xff0c;因此在项目中严格意义上来说并没有架构设计、也不写单元测试&#xff0c;后来有幸加入了一家公司&#xff0c;这家公司虽然也是一家小公司&#xff0c;但…

9.23 资料分析 7/10

9.23 资料分析 7/101.转换问题 转换为混合增长率技巧 思路问题

2. Spring AI 快速入门使用 - Rainbow

2. Spring AI 快速入门使用 @目录2. Spring AI 快速入门使用快速使用接入deepseek流式对话options配置选项temperature(温度)建议maxTokens stop模型推理原理:接入阿里百炼使用文生图文生语音text2audio语音翻译aud…

PyCharm 2025.1安装包下载与安装教程

软件介绍 PyCharm 2025.1 是 JetBrains 推出的革命性 Python 集成开发环境,采用统一版本架构整合了专业版与社区版功能。核心功能如 Jupyter Notebook 支持、基础代码编辑、调试器及版本控制完全免费开放,同时推出 P…

阿里将发布多模态模型 Qwen3-Omni,主打多语言与复杂推理;DeepvBrowser 上线 AI 语音浏览器丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 技术 」、「有亮点的 产品 」、「有思考的 文章 」、…