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

想必大家在开发过程中也遇到类似问题,如果直接将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对象。

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

时间: 2024-11-03 22:02:46

js数组转json并在后台对其解析具体实现_javascript技巧的相关文章

JS数组去掉重复数据只保留一条的实现代码_javascript技巧

非常不多说,js数组去掉重复数据的代码如下所示: var arr = [1,2,3,4,5,6,1,6,7,2]; var newArr = []; for(var i =0;i<arr.length-1;i++){ if(newArr.indexOf(arr[i]) == -1){ newArr.push(arr[i]); } } 下面再给大家分享高效率去掉js数组中重复项 Array类型并没有提供去重复的方法,如果要把数组的重复元素干掉,那得自己想办法: function unique(ar

Js数组的操作push,pop,shift,unshift等方法详细介绍_javascript技巧

js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧.不过不会针对每个方法进行讲解,我只是选择其中的一些来讲. 首先来讲一下push和pop方法,这两个方法只会对数组从尾部进行压入或弹出,而且是在原数组进行操作,任何的改动都是会影响到操作的数组.push(args)可以每次压入多个元素,并返回更新后的数组长度.pop()函数每次只会弹出最后一个结尾的元素,并返回弹出的元素,如果是对空组数调用pop()则返回undefined. 如果参数是数组则是将整个数组当做一个元素

js+数组实现网页上显示时间/星期几的实用方法_javascript技巧

复制代码 代码如下: <html> <head> <script type="text/javascript"> function startTime() { var today=new Date() var h=today.getHours() var m=today.getMinutes() var s=today.getSeconds() // add a zero in front of numbers<10 m=checkTime(m

使用js数组保存json数据

问题描述 我在数据库中读出了数据然后用List集合保存之后传入Json,,问题是在HTML页中如何读取后台的Json数据并且保存在JS数组里面,如果能用代码解析就更好了,求助. 解决方案 解决方案二:建议先了解前后台数据交换方式吧解决方案三:aspx可以通过<%=%>或者直接将json赋给服务器控件,然后前端通过eval($('#xx').val())的方式来获取jsonashx的话就是ajax请求解决方案四:你说的这个差不多就是ajax请求吧,你可以看看ajax的例子,大概就是$.ajax(

js数组转换json数据代码

  function arraytojson(o) { var r = []; if (typeof o == "string") return """ + o.replace(/(['"])/g, "$1").replace(/(n)/g, " ").replace(/(r)/g, " ").replace(/(t)/g, " ") + ""&q

js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)_javascript技巧

我们或多或少都使用过各式各样的富文本编辑器,其中有一个很方便功能,复制一张图片然后粘贴进文本框,这张图片就被上传了,那么这个方便的功能是如何实现的呢? 原理分析提取操作:复制=>粘贴=>上传 在这个操作过程中,我们需要做的就是:监听粘贴事件=>获取剪贴板里的内容=>发请求上传 为方便理解下文,需要先明白几点: 我们只能上传网页图(在网页上右键图片,然后复制)和截图(截图工具截的图片,eg:qq截图),不能粘贴上传系统里的图片(从桌面上.硬盘里复制),他们是存在完全不同的地方的. 截

JavaScript遍历Json串浏览器输出的结果不统一问题_javascript技巧

没有介绍正文之前先给大家说下json是什么. JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,我们称之为JavaScript对象表示法.使用JSON进行数据传输的优势之一是JSON实际上就是JavaScript.它基于ECMAScript第3版中JavaScript对象字面量语法子集的一种文本格式.这表示可以使用responseText从服务器中检索JSON数据,然后再使用JavaScript的eval()方法将JSON字符串转换成JavaScrip

js调用后台、后台调用前台等方法总结_javascript技巧

js调用后台,后台调用前台等方法总结 1. javaScript函数中执行C#代码中的函数: 方法一:1.首先建立一个按钮,在后台将调用或处理的内容写入Button1_Click中; 复制代码 代码如下: protected void Button1_Click(object sender, EventArgs e) { this.TextBox1.Text = "voodooer"; } 2.在前台可以这样调用: 复制代码 代码如下: <input type="but

js实现json数据行到列的转换的实例代码_javascript技巧

月份 郑州-电量 新乡-电量 安阳-电量201201 33 29 23201202 35 26 25201203 34 27 24201204 36 28 26201205 34.3 28.8 24.3这样,Ext的图表就能把它显示成三个序列了.我写了如下的函数实现这个功能: 复制代码 代码如下: function CovertData(jsonData,idField, fromField, toField){ var result = [], curRecord =null, num; va