前台和后台互相传递多维数组

  上一篇文章介绍了前台和后台相互传递数组的方法,从客户端传一维数组到服务器可以用jquery的ajax方法直接传递。但如果传递的是多维数组呢?

  此时可以借用json的stringify()方法将字符串数组转换为json数组对象传递到后台,后台再使用JSONArray对象的fromObject()方法将其转换为数组即可。

  示例:

  JS代码:

$(function(){
    var array1 = new Array();
    array1.push("A");
    array1.push("B");
                
    var array2 = new Array();
    array2.push("123");
    array2.push("456");
            
    var allArray = new Array();
    allArray.push(array1);
    allArray.push(array2);

    //将字符串数组转化为JSON数组
    var jsonArry = JSON.stringify(allArray);

    $.ajax({            
      type: "POST",
      url: "JsonServelet",
      dataType: "json",
       traditional: true,
       data: {
             array: jsonArry
      },                              
      success: function(data){
                             
      }
    });

}); 

  Java代码:

package com.jason.json;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;

public class JsonServelet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        
        String array = req.getParameter("array");
        
        Object[] object = getJsonToArray(array);
        
        Object data= object[0];
        
        Object[] dataArray = null;
        
        ArrayList<String> dataList = new ArrayList<String>();
        
        dataArray = getJsonToArray(data.toString());
for(int i=0;i<dataArray.length;i++){ dataList.add(dataArray[i].toString()); } for (int i = 0; i < dataList.size(); i++) { System.out.println("dataList = "+dataList.get(i)); } } /** * 从json数组中得到相应java数组 * JSONArray下的toArray()方法的使用 * @param data * @return */ public static Object[] getJsonToArray(String data) { JSONArray jsonArray = JSONArray.fromObject(data); return jsonArray.toArray(); } }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。