js数组转json并在后台对其解析具体实现


Posted in Javascript onNovember 20, 2013

想必大家在开发过程中也遇到类似问题,如果直接将js获取的数组传给后台,后台是无法区分数组的,因为js数组如果是二维的就是这样的:1,张三,23,2,李四,26

所以在此对其解决方法进行整理。希望能给大家带去帮助

首先需要在js里面对数组进行转换为json格式

js代码如下:

/**
     *js数组转json
     *
     */ 
    function arrayToJson(o) {  
    var r = [];  
    if (typeof o == "string") return "/"" + o.replace(/([/'/"//])/g, "//$1").replace(/(/n)/g, "//n").replace(/(/r)/g, "//r").replace(/(/t)/g, "//t") + "/"";  
    if (typeof o == "object") {  
    if (!o.sort) {  
    for (var i in o)  
    r.push(i + ":" + arrayToJson(o[i]));  
    if (!!document.all && !/^/n?function/s*toString/(/)/s*/{/n?/s*/[native code/]/n?/s*/}/n?/s*$/.test(o.toString)) {  
    r.push("toString:" + o.toString.toString());  
    }  
    r = "{" + r.join() + "}";  
    } else {  
    for (var i = 0; i < o.length; i++) {  
    r.push(arrayToJson(o[i]));  
    }  
    r = "[" + r.join() + "]";  
    }  
    return r;  
    }  
    return o.toString();  
    }

然后是在java后台js该字符串后 对其进行json转换。
com.alibaba.fastjson.JSONArray mainArray=JSON.parseArray(info.getMainparame()); 
     log.debug("数组大小:"+mainArray.size()); 
       for(int i=0;i< mainArray.size();i++){ 
           QybjProduceParam p=new QybjProduceParam(); 
           com.alibaba.fastjson.JSONArray paramObject=(com.alibaba.fastjson.JSONArray)mainArray.get(i); 
          p.setParamename(paramObject.get(1).toString()); 
          p.setParamevalue(paramObject.get(2).toString());           params.add(p); 
       } 
       info.setParams(params);

大家从java代码里面 不难看出,是经过2次转换。每次都是转为JSONArray对象。

如果是一维数组就只转换一次。

Javascript 相关文章推荐
js 替换功能函数,用正则表达式解决,js的全部替换
Dec 08 Javascript
javascript正则表达式定义(语法)总结
Jan 08 Javascript
jQuery on()绑定动态元素出现的问题小结
Feb 19 Javascript
vue双向数据绑定原理探究(附demo)
Jan 17 Javascript
javascript实现页面滚屏效果
Jan 17 Javascript
jQuery实现的页面弹幕效果【测试可用】
Aug 17 jQuery
Vue 框架之动态绑定 css 样式实例分析
Nov 14 Javascript
javascript验证form表单数据的案例详解
Mar 25 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
Aug 01 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
Aug 26 Javascript
js实现复制粘贴的两种方法
Dec 04 Javascript
jenkins自动构建发布vue项目的方法步骤
Jan 04 Vue.js
javascript 循环调用示例介绍
Nov 20 #Javascript
jquery实现可拖动DIV自定义保存到数据的实例
Nov 20 #Javascript
JavaScript实现多维数组的方法
Nov 20 #Javascript
jQuery jcrop插件截图使用方法
Nov 20 #Javascript
javascript中的if语句使用介绍
Nov 20 #Javascript
js控制表单不能输入空格的小例子
Nov 20 #Javascript
js中Image对象以及对其预加载处理示例
Nov 20 #Javascript
You might like
多人战的战术与战略
2020/03/04 星际争霸
php MYSQL 数据备份类
2009/06/19 PHP
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
一个无限级XML绑定跨框架菜单(For IE)
2007/01/27 Javascript
javascript深入理解js闭包
2010/07/03 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
js中的如何定位固定层的位置
2014/06/15 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
node.js中的buffer.length方法使用说明
2014/12/14 Javascript
javascript生成大小写字母
2015/07/03 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
javascript函数式编程程序员的工具集
2015/10/11 Javascript
JQuery的Pager分页器实现代码
2016/05/03 Javascript
AngularJS学习第一篇 AngularJS基础知识
2017/02/13 Javascript
Javacript中自定义的map.js  的方法
2017/11/26 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
微信小程序多音频播放进度条问题
2018/08/28 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
2018/09/14 Javascript
详解一次Vue低版本安卓白屏问题的解决过程
2019/05/30 Javascript
浅谈Vue的响应式原理
2019/05/30 Javascript
JQuery插件tablesorter表格排序实现过程解析
2020/05/28 jQuery
[03:24]DOTA2超级联赛专访hao 大翻盘就是逆袭
2013/05/24 DOTA
学习python (1)
2006/10/31 Python
python使用str &amp; repr转换字符串
2016/10/13 Python
python中的文件打开与关闭操作命令介绍
2018/04/26 Python
利用CSS3实现折角效果实例源码
2016/09/28 HTML / CSS
美国牙科折扣计划:DentalPlans.com
2019/08/26 全球购物
英文版销售经理个人求职信
2013/11/20 职场文书
4S店售后客服自我评价
2014/04/09 职场文书
植树造林的宣传标语
2014/06/23 职场文书
2015年学校安全管理工作总结
2015/05/11 职场文书
办公室主任岗位竞聘书
2015/09/15 职场文书
2016年综治宣传月活动宣传标语口号
2016/03/16 职场文书
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript