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 相关文章推荐
javascript或asp实现的判断身份证号码是否正确两种验证方法
Nov 26 Javascript
实用的Jquery选项卡TAB示例代码
Aug 28 Javascript
setTimeout和setInterval的深入理解
Nov 08 Javascript
javascript实现行拖动的方法
May 27 Javascript
jQuery表单事件实例代码分享
Aug 18 Javascript
模板视图和AngularJS之间冲突的解决方法
Nov 22 Javascript
webpack写jquery插件的环境配置
Dec 21 jQuery
webpack 4.0.0-beta.0版本新特性介绍
Feb 10 Javascript
vue+vue-router转场动画的实例代码
Sep 01 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
Jan 08 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
Nov 04 Javascript
vue中this.$http.post()跨域和请求参数丢失的解决
Apr 08 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
PHP完整的日历类(CLASS)
2006/11/27 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
解析php file_exists无效的解决办法
2013/06/26 PHP
PHP使用xmllint命令处理xml与html的方法
2014/12/15 PHP
微信API接口大全
2015/04/15 PHP
自适应图片大小的弹出窗口
2006/07/27 Javascript
JavaScript 常用函数
2009/12/30 Javascript
jQuery EasyUI NumberBox(数字框)的用法
2010/07/08 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
2012/06/04 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
JavaScript中的prototype原型学习指南
2016/05/09 Javascript
JS实现重新加载当前页面
2016/11/29 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
vue.js打包之后可能会遇到的坑!
2018/06/03 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
微信小程序 组件的外部样式externalClasses使用详解
2019/09/06 Javascript
jQuery插件实现图片轮播效果
2020/10/19 jQuery
Python跨文件全局变量的实现方法示例
2017/12/10 Python
Python基于opencv的图像压缩算法实例分析
2018/05/03 Python
Python实现合并两个列表的方法分析
2018/05/28 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
Python补齐字符串长度的实例
2018/11/15 Python
详解python中的hashlib模块的使用
2019/04/22 Python
python3 requests库实现多图片爬取教程
2019/12/18 Python
小 200 行 Python 代码制作一个换脸程序
2020/05/12 Python
python如何保存文本文件
2020/06/07 Python
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
采购部主管岗位职责
2014/01/01 职场文书
校园报刊亭的创业计划书
2014/01/02 职场文书
连锁酒店店长职责范本
2014/02/13 职场文书
公司晚会主持词
2014/03/22 职场文书
反邪教宣传工作方案
2014/05/07 职场文书
庆国庆国旗下讲话稿2014
2014/09/21 职场文书
闪闪的红星观后感
2015/06/08 职场文书
2016年记者节感言
2015/12/08 职场文书