序列化json对象,通过ajax传入asp.net mvc后台
2013-09-08 22:42
405 查看
序列化json对象,通过ajax传入asp.net mvc后台
序列化json对象,通过ajax传入asp.net mvc后台
今天遇到一个问题,准备把组织好的json对象通过jquery.ajax post方式传入asp.net mvc后台,谁知道一直接不到数据。很是郁闷,我以前都是这样传的啊。后台:
前台:
结果试了各种方式,实在传不过来,突然看了一下Request.Form的值
tag=first&p[name]=yuxiang&p[age]=22
啊啊啊,想到了我以前都是用form表单传的,用jquery传就把序列化成这个样子了,而正常的样子应该是 tag=first&p.name=yuxiang&p.age=22
没办法了,上google搜了一把,也没找到好的方法。只能自己写序列化了。
// string var string = { format: function (value, args) { /// <summary>将指定字符串中的一个或多个格式项替换为指定对象的字符串表示形式。</summary> /// <param name="value" type="String">复合格式字符串。</param> /// <param name="args" type="Object">要设置格式的对象,可以为多个。</param> if (arguments.length === 0) return ""; var str = value; for (var i = 1, len = arguments.length; i < len; i++) { var re = new RegExp('\\{' + (i - 1) + '\\}', 'gm'); str = str.replace(re, arguments[i]); } return str; } } // 序列化asp.net mvc3 model libra.serializeModel = function (obj) { var result = { value: "" }; serializeModelCore(result, "", obj); result.value = result.value.slice(0, result.value.length - 1); return result.value; } function serializeModelCore(result, objName, item) { // 数组 if (libra.isArray(item)) { for (var i = 0, len = item.length; i < len; i++) { var objNameParam = objName + "[" + i + "]"; serializeModelCore(result, objNameParam, item[i]); } } // 对象 else if (libra.isObject(item)) { for (var propName in item) { var objNameParam = ""; if (objName) { objNameParam = objName + "." + propName; } else { objNameParam = propName; } serializeModelCore(result, objNameParam, item[propName]); } } // 值 else { result.value += string.format("{0}={1}&", objName, item); } }
调用方法:
这是新方法传过来的值:
tag=first&p.name=yuxiang&p.age=22
搞定,大家有什么好的做法,欢迎交流
相关文章推荐
- JSON.stringify()将JSON对象转换为字符串通过Ajax传入到后台处理
- javascript中创建对象,并序列化为json,通过$.ajax的提交json数据到后台方法,取值为null的问题
- JSON.stringify()将JSON对象转换为字符串通过Ajax传入到后台处理
- JSON.stringify()将JSON对象转换为字符串通过Ajax传入到后台处理
- 将表单序列化之后变成的json格式的数据无法通过Ajax发送到后台的解决
- ajax获取数据库,然后json序列化,在前台通过input绑定出来
- C#(服务器)与Java(客户端)通过Socket传递对象(序列化 json)
- spring mvc接收ajax提交的JSON数据,并反序列化为对象
- Ajax之Json对象序列化传参
- AJAX JSON中日期类型DateTime格式化的序列化自定义对象以及自定义类型参数的问题处理
- 将class对象转成json对象并通过ajax传递到前端
- 使用json序列化类型为“ajax学习.DataSetComment+T_CommentDataTable”的对象时检测到循环引用。
- apache HttpClients实例,传入json对象。对应的springMvc通过HandlerMethodArgumentResolver解析两个对象绑定
- 黑马程序员_学习日记73_725ASP.NET(禁用Cookie、ASP.NET中的重要对象、JavaScript实现AJAX、两种Json格式的序列化方法、JQuery中实现ajax的五种方法)
- 通过Ajax技术,将数组类型数据转换为JSON格式的对象
- PHP使用serialize和json_encode序列化数据并通过redis缓存文件和$GLOGALS缓存资源对象
- 关于怎么解决从ajax传入的json参数注入到Controller的接收对象 以及如何在Spring Boot项目使用参数校验
- ajax, 通过JSON.stringify(Model)传递对象
- 使用json序列化类型为“ajax学习.DataSetComment+T_CommentDataTable”的对象时检测到循环引用。
- 【json】前台ajax序列化的多个属性拼接在一起的字符串,转化为JSONObject对象