序列化和反序列化在浏览器和 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 服务器之间传递的数据加密解密的主要内容,如果未能解决你的问题,请参考以下文章

C#序列化和反序列化到底是啥意思?

android activity之间传递对象 对象为啥要序列化

什么是json的序列化和反序列化

json 序列化和反序列化

序列化和反序列化

在C#中序列化和反序列化之间保留xml元素的顺序