将前台JS数组序列化后提交,后台反序列化对象

  1. //前台js
    function inputAll(thiss) {
    var _entryArr = [];
    var $trArr = $("#FirstTable tr:gt(0)");
    if ($trArr.length == 0) { return; }
    for (var i = 0; i < $trArr.length; i++) {
    var $thirdTd = $($trArr[i]).find("td:eq(2)");
    var entryObjectID = $thirdTd.find(":hidden:eq(0)").val();
    var entryData = $thirdTd.find(":text:eq(0)").val();
    if ($.trim(entryData).length == 0) { alert(‘请输入第‘ + (i + 1) + ‘行要录入的数据!‘); return; }
    var _entry = {};
    _entry.EntryObjectID = entryObjectID;
    _entry.EntryData = entryData;
    _entryArr.push(_entry);
    }
    var _data = {};
    _data.Action = ‘InputAllData‘;
    _data.EntryData_Arr = Serialize(_entryArr);
    _data.EntryTime = $("#txtFirstStartTime").val();
    $.ajax({
    type: "get",
    cache: false,
    url: "OtherData.aspx",
    data: _data,
    beforeSend: function (XMLHttpRequest) {
    showLoading(‘正在录入,请稍候...‘);
    },
    success: function (data) {
    try {
    hideLoading();
    if (Number(data) >= 1) {
    alert("批量录入成功!");
    } else {
    alert("批量录入失败!");
    }
    } catch (ex) {
    alert("批量录入失败!");
    }
    },
    error: function () {
    hideLoading();
    }
    });
    }
  2. //后台:
  3. string EntryData = Request["EntryData_Arr"]; 
    //[{EntryObjectID:"7",EntryData:"121.222"},{EntryObjectID:"8",EntryData:"115.3"},{EntryObjectID:"9",EntryData:"166.8"},{EntryObjectID:"1",EntryData:"0"}]
    tempEntryModel[] EntryArr = (tempEntryModel[])Newtonsoft.Json.JsonConvert.DeserializeObject(EntryData, typeof(tempEntryModel[]));
    1. //临时model类
    2. private class tempEntryModel
      {
            //{EntryObjectID:"7",EntryData:"121.222"}
           public int EntryObjectID { get; set; }
           public double EntryData { get; set; }
      }
  4. //js序列化方法:
  5. function Serialize(obj) {
         switch (obj.constructor) {
            case Object:
            var str = "{";
            for (var o in obj) {
                str += o + ":" + Serialize(obj[o]) + ",";
            }
            if (str.substr(str.length - 1) == ",")
                str = str.substr(0, str.length - 1);
            return str + "}";
            break;
            case Array:
            var str = "[";
            for (var o in obj) {
                str += Serialize(obj[o]) + ",";
            }
            if (str.substr(str.length - 1) == ",")
                str = str.substr(0, str.length - 1);
            return str + "]";
            break;
            case Boolean:
            return "\"" + obj.toString() + "\"";
            break;
            case Date:
            return "\"" + obj.toString() + "\"";
            break;
            case Function:
            break;
            case Number:
            return "\"" + obj.toString() + "\"";
            break;
            case String:
            return "\"" + obj.toString() + "\"";
            break;
        }
    }
时间: 2024-08-26 21:33:53

将前台JS数组序列化后提交,后台反序列化对象的相关文章

JS中直接从java后台获得对象的值(数组的值)

这里举得例子是:JS直接从后台Contorller中(SpringMVC中的model中)获得数值的值 Contorller 此处将 talentIntegralRecordsDay talentIntegralRecordsIntegral 两个数组用JSON.toJSONString()封装. @SuppressWarnings("deprecation") @RequestMapping("/integralParadise") public ModelAnd

treetable 前台 累计计算树值 提交后台

treetable   累计计算树值 效果图 html  代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> &l

js序列化数组用于ajax提交数据

但我们要用ajajx提交类似于: array('id' =>12,data => array('a'=>1,'b'=>2)); 这样的二维数组的数据时,直接ajax提交后台是接收不到的,需要特殊处理下: //这里只能处理二维数组数据,多维的需在做循环或递归function serialize_data(obj){ var str = ''; for(var i in obj){ if(typeof(obj[i]) === 'object'){ for(var s in obj[i]

RSA前台js加密,后台C#解密

一.需求: 为了安全,项目中前台登陆用的密码需要加密传到后台,后台c#解密登陆密码. 二.解决方案 采用非对称加密算法RSA来达到目的,前台登陆页面一加载便发送一次ajax请求获取后台产生的公钥,用于前台加密,用户点击登陆时出发加密过程并提交加密的数据到后台,后台C#语言采用已封装好的RSA算法工具进行密码解密. 以下为c#RSA算法加密代码: private static RSAParameters rsap = new RSAParameters() { Modulus = Convert.

前台JS(Jquery)调用后台方法 无刷新级联菜单示例

前台用AJAX直接调用后台方法,老有人发帖提问,没事做个示例 下面是做的一个前台用JQUERY,AJAX调用后台方法做的无刷新级联菜单 http://www.dtan.so CasMenu.aspx页面: [html] view plaincopyprint? <%@ Page Language="C#" AutoEventWireup="true" CodeFile="CasMenu.aspx.cs" Inherits="_De

ASP.NET的后台代码和前台JS代码相互调用

在实际的Web开发中,我们可能会常常遇到后台调用前台JS代码或者前台JS调用后台代码的情况.今天就把比较实用的前后台相互调用的方法总结出来和大家分享. <1>后台代码调用前台JS代码 一.说到后台代码调用前台的JS代码很多人首先就会想到使用 ClientScript.RegisterStartupScript()方法,该方法主要是注册启动脚本文本,即在后台执行调用前台JS代码 该方法有两个重载, 1.ClientScript.RegisterStartupScript(Type type,st

《项目经验》--后台一般处理程序向前台JS文件传递JSON,JS解析JSON,将数据显示在界面--显示在DropDownList 或 显示在动态创建的table中

http://blog.csdn.net/mazhaojuan/article/details/8599167 先看一下我要实现的功能界面: 这篇文章主要介绍:后台一般处理程序把从数据库查找的数据,转换成JSON,然后传递到前台JS文件中,JS解析JSON数据,并将数据显示在界面,主要介绍两种显示方式,显示在DropDownList控件 or 显示在动态创建的Table表中.   本文主要介绍两个地方: 1.根据学年查询学期信息的实现--JS将解析的JSON数据绑定到DropDownList框

将前台input中的数组异步传到后台并存入数据库

将前台input中的数组异步传到后台并存入数据库 先看图: 利用ajax异步交互数据,并不是以json数组的形式将数据传到后台,而是利用字符数组的形式将其传到后台.动态新增每一行数据,将每一列对应的数据存入数组,并传到后台中进行入库.(当然可以直接以json数组的形式将每一行的数据传到后台,这里就不详细讲了) 前台js代码: ///保存多行数据,运用ajax异步交互请求 function btnSave() { /*传值方式一:将添加的每一字段的值存在数组中,再将数组转换成字符串串传到后台*/

用ajax将后台数据传入前台js

1.后台连接数据库,取到数据 string sql = "......................................."; string one = OracleHelperTools.ExecuteScalar(sql);   //这里图省事用的oraclehelper string flow1 = JSONConvert.ToJson(one);    //用JSON将数据封装,值的格式会变,传入前台时需要解析 2.在页面的aspx.cs中去写解析 [WebMet