序列化和反序列化在浏览器和 Web 服务器之间传递的数据、加密解密
js中数组不能传递到后台,需进行json序列化:
var data = new Array();
data.push({para1:name,para2:answer}); string data = JSON.stringify(data)
//解析参数
JavaScriptSerializer js = new JavaScriptSerializer();
List<Dictionary<string, string>> answerList = js.Deserialize<List<Dictionary<string, string>>>(data);
加密(js):
var base64 = new Base64();
data = base64.encode(JSON.stringify(data));
解密(控制器):
data = System.Text.ASCIIEncoding.Default.GetString(Convert.FromBase64String(data));
JSON.stringify()【从一个对象中解析出字符串】
var data={name:'goatling'}
JSON.stringify(data)
结果是:'{"name":"goatling"}'
JSON.parse()【从一个字符串中解析出json对象】
var data='{"name":"goatling"}'
JSON.parse(data)
结果是:name:"goatling"
JavaScriptSerializer类
JavaScriptSerializer 类用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据。
说白了就是能够直接将一个C#对象传送到前台页面成为javascript对象。
方法:
1.ConvertToType<(Of <(T>)>) 将给定对象转换为指定类型。
2.Deserialize<(Of <(T>)>) 将指定的 JSON 字符串转换为 T 类型的对象。
3.DeserializeObject 将指定的 JSON 字符串转换为对象图。
4.RegisterConverters 使用 JavaScriptSerializer 实例注册自定义转换器。
5.Serialize 已重载。 将对象转换为 JSON 字符串
事例:
1.JavaScriptSerializer jss = new JavaScriptSerializer();
2.Person p = new Person(1, "李雷", 20);
3.string json = js.Serialize(p); //序列化成JSON
4.Person p1 = jss.Deserialize<Person>(json); //再反序列化为Person对象,注意此方法要求目标类有无参构造函数
5.return Json(json, "text/json"); //很好用,但是返回的终归是字符串,返回到前台要解析一下才能变成javascript对象。
6.return Json(new { Id = p1.Id, Name = p1.Name, Age = p1.Age }, "text/json");
//如果这样写,返回到javascript中是不用再解析的,直接就是javascript对象
序列化和反序列化在浏览器和 Web 服务器之间传递的数据、加密解密的更多相关文章
- Web浏览器与Web服务器之间的通信过程
HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:1:建立TCP连接 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连 ...
- http通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤
http通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤: (1) 建立TCP连接 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成 ...
- js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符
js中对arry数组的各种操作小结 最近工作比较轻松,于是就花时间从头到尾的对js进行了详细的学习和复习,在看书的过程中,发现自己平时在做项目的过程中有很多地方想得不过全面,写的不够合理,所以说啊 ...
- Android客户端与服务器之间传递json数据
在服务器与客户端之间通信,json数据是一种常用格式,本文主要在服务器端构建数据,在客户端接收显示,并且在listview上显示出来 服务器端的构建 简单的javabean与返回结果函数与插入函数略过 ...
- web前端url传递值 js加密解密
一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码: <script type=”text/javascript ...
- 浏览器与WEB服务器交互
问题:打开浏览器,在地址栏输入url到页面展现,整个过程发生了什么? 图示: 步骤: 1 用户输入网址,包括协议和域名. 2 浏览器先查找自身缓存有没有记录,没有的话再找操作系统缓存. 3 当浏览器在 ...
- 序列化和反序列化,异步调用web/wcf/函数
//xml序列化 public static string Seria(DataSet ds) { XmlSerializer serializer = new XmlSerializer(typeo ...
- ASP.NET CORE Web浏览器和Web服务器
//web浏览器 //浏览器本质的原理:浏览器向服务器发请求,服务器把请求的内容返回给浏览器,然后浏览器把返回的内容绘制成一个图形化的界面 //Socket一种通讯交流的技术 //qq用户把信息通过s ...
- 转:浏览器与WEB服务器工作过程举例
用户通过“浏览器”访问因特网上的WEB服务器,浏览器和服务器之间的信息交换使用超文本传输协议(HTTP--HyperText Transfer Protocol). 例:用户访问东南大学主页 Http ...
随机推荐
- cassandra3.11.4集群搭建
环境:[centos7.cassandra-3.11.4] 三个节点:[主机名为master,slave-1,slave-2, 用户均为root] 1.下载cassandra cassandra下载地 ...
- LeetCode 124. 二叉树中的最大路径和(Binary Tree Maximum Path Sum)
题目描述 给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不一定经过根节点. 示例 1: 输入: [1,2,3] 1 ...
- Linux 查看网卡速率及版本
查看网卡速率:ethtool 网卡名 如ethtool eth0 查看网卡驱动版本号:ethtool -i 网卡名 如ethtool -i eth0 示例: [root@nt3 ~]# etht ...
- 2017-12-3 Crontab(字符串处理)
Crontab 哈哈本人的不及格代码(暂留): #include<iostream> #include<queue> #include<cmath> #includ ...
- easyUI之ComboBox(下拉列表框)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- SQL语句之数据定义语言(DDL)详解
操作对象:数据库 1)创建数据库 MariaDB [(none)]> help create databaseName: 'CREATE DATABASE'Description:Syntax: ...
- HTML之表单类控件、图像类元素的CSS特别样式汇总
前言 记录下开发过程中一些特殊表单控件(input.textarea.select等)的样式控制 input 取消光标聚焦时,输入框的外延边框 input:focus{ outline:none } ...
- Cell中实现多图展示
实现的效果如下: 主要实现代码如下: // // DetailCell.m // Floral // // Created by 思 彭 on 16/9/21. // Copyright © 2016 ...
- 牛客练习赛53 A-E
牛客联系赛53 A-E 题目链接:Link A 超越学姐爱字符串 题意: 长度为N的字符串,只能有C,Y字符,且字符串中不能连续出现 C. 思路: 其实就是DP,\(Dp[i][c]\) 表示长度为 ...
- 【VS开发】关于各种View的实现总结
[VS开发]关于各种View的实现总结 标签(空格分隔): [VS开发] 最近两天整理了一下各种View的实现,实际上各种View也只是实现了对应Dialog对话框中的一些控件而已,比如CListCt ...