標籤:返回 技術分享 coding 字元 des dict return http pts
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 服務器之間傳遞的資料、加密解密