序列化和反序列化在浏览器和 Web 服务器之间传递的数据加密解密
Posted 空城里的往日时光
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了序列化和反序列化在浏览器和 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 服务器之间传递的数据加密解密的主要内容,如果未能解决你的问题,请参考以下文章