zoukankan      html  css  js  c++  java
  • 序列化和反序列化在浏览器和 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对象




  • 相关阅读:
    读取MySQL的log方法
    mysql导入数据之乱码分析及解决办法
    MYSQL_BIN_LOG::purge_logs was called with file '/home/log/mysqlbin.22.log' not listed in the index
    我回来了
    凌云架构V0.1——写在开始之前
    凌云架构V0.1——序
    不常用的sql语句
    IIS配置技巧
    Log4Net学习笔记1
    ASP+ACCESS 温故而知新
  • 原文地址:https://www.cnblogs.com/llljpf/p/7142390.html
Copyright © 2011-2022 走看看