JavaWEB前端JS向服务器端发送对象
来源:互联网 发布:mac兼容windows软件 编辑:程序博客网 时间:2024/06/07 09:16
最近项目中需要做一个关于表单数据提交的功能,由于参数很多,比如需要保存多个学生的数据。对于这种业务当然有一种比较常见的解决方法,是使用逗号、下划线、或者分号分割,然后传到后台拆分后再进行操作,这种方法需要前台拼接,后台解析,稍显繁复且容易出错。
对于搞JAVA程序的我来说,显得不是很面向对象。于是很自然的想到了使用json字符串进行传递数据,具体步骤如下:1、先把想要传递的参数封装成js对象,代码样例如下:
var param = {};param.name = "张三3";param.age = "253";param.tell = "187230566933";var params = {};params.name = "张三2";params.age = "252";params.tell = "187230566932";params.param = param;2、接下来把js对象转成json字符串,java培训机构中比较常见的做法是使用JSON.stringfy(),尝试一番之后发现IE8浏览器并不支持(该方法对谷歌、火狐、以及IE9以上版本浏览器完美支持),而我们当前的产品只支持IE浏览器,转而求救谷歌百度,找到一个比较通用的js方法,代码如下:
//js对象转成json字符串function obj2Str(obj) {switch (typeof (obj)) {case 'object':var ret = [];if (obj instanceof Array) {for (var i = 0, len = obj.length; i < len; i++){ret.push(obj2Str(obj[i]));}return '[' + ret.join(',') + ']';}else if (obj instanceof RegExp){return obj.toString();}else{for ( var a in obj){ret.push(a + ':' + obj2Str(obj[a]));}return '{' + ret.join(',') + '}';}case 'function':return 'function() {}';case 'number':return obj.toString();case 'string':return '"'+ obj.replace(/(\\|\")/g, '\\$1').replace(/\n|\r|\t/g,function(a){return ('\n' == a) ? '\\n': ('\r' == a) ? '\\r': ('\t' == a) ? '\\t' : '';}) + '"';case 'boolean':return obj.toString();default:return obj.toString();}}
3、前台封装好以后,使用ajax请求到后台,JAVA解析json字符串的方法不少,可以在网上找写好的方法,当然也可以使用json-lib-xxx.jar,这个jar包在项目中应用很广泛,LZ上一家公司就使用其做了大量json转化工作,使用方法如下:
JSONArray jsonArray = JSONArray.fromObject(jsonStr);
List<Map> cmdList = (List<Map>)JSONArray.toCollection(jsonArray, Map.class);
4、通过内置方法转化成集合,再传递到ibatis或者自己使用的数据库持久层进行处理即可。
0 0
- JavaWEB前端JS向服务器端发送对象
- JavaWEB前端向服务器端发送对象
- html5-向服务器端发送数据
- 向前端传list集合变成js中的对象
- 使用java向linux服务器端发送信号
- Android向服务器端发送json数据
- 通过wifi向服务器端发送数据
- 使用Ajax向服务器端发送请求
- Android向服务器端发送json数据
- 向服务器端发送请求 GET POST
- Android客户端连接服务器端,向服务器端发送请求HttpURLConnection
- Android客户端连接服务器端,向服务器端发送请求HttpURLConnection
- Android客户端连接服务器端,向服务器端发送请求HttpURLConnection
- Android GET,POST向服务器端发送数据(发送)
- Android GET,POST向服务器端发送数据(发送)
- js向webview发送URL
- 服务器端将复合json对象传回前端
- JS和面向对象
- iOS包体优化技巧
- 算法习题
- HTML压缩
- 欢迎使用CSDN-markdown编辑器
- PAT 1033. To Fill or Not to Fill
- JavaWEB前端JS向服务器端发送对象
- opengles绘制天空盒
- CNN人脸关键点检测
- android 6.0
- burpsuite1.6安装使用方法详解
- Spark调优之旅<一>
- 查询数据库中重复记录的方法
- 【项目3 - 括号的匹配】
- php 如何防止不同项目的 session key冲突