0

I have passed an 2 dimensional array like this using ajax to servlet

var data = [["BSC","Name","Code"],[34,"dfg4",34],[345,"3dg4sdfd",345],[234,"dfg4","34f"],[23,"dfg4","s34"],[23,"dg","wdr3"],[234,244,"drydr"]];

$.ajax({
        url: './SubmitSheet',
        type: 'POST',
        data: {'json': JSON.stringify(data)},
        success: function () {
    }
});

In servlet I need to retrieve the values to a 2 dimensional array I have tried using

String data[] = request.getParameterValues("json");

But it puts all the values into 0 index (data[0])

drneel
  • 2,887
  • 5
  • 30
  • 48
  • You have to iterate and populate – Suresh Atta Mar 30 '16 at 13:20
  • If it's `bidimensional` why you instantiate an `unidimensional` `data[]` array instead of `data[][]`? – XCS Mar 30 '16 at 13:20
  • Also, read this question, it might help: http://stackoverflow.com/questions/1067073/initialising-a-multidimensional-array-in-java – XCS Mar 30 '16 at 13:21
  • Enumeration en=req.getParameterNames(); while(en.hasMoreElements()) { Object objOri=en.nextElement(); String param=(String)objOri; String value=req.getParameter(param); pw.println("Parameter Name is '"+param+"' and Parameter Value is '"+value+"'"); } – khaja firoz Mar 30 '16 at 13:37
  • This might help you.. http://stackoverflow.com/questions/18040926/how-to-accept-2d-arrays-in-spring-mvc-controller – Ashok Goli Mar 30 '16 at 13:52

2 Answers2

0

You code should be:

String data = request.getParameter("json");

You will need to parse the String try using gson

ozOli
  • 1,414
  • 1
  • 18
  • 26
-1

try this method. Change value of input as necessary.

private static void jsArrayToJavaArray(){
    String input = "[[\"BSC\",\"Name\",\"Code\"],[34,\"dfg4\",34]," +
            "[345,\"3dg4sdfd\",345],[234,\"dfg4\",\"34f\"],[23,\"dfg4\",\"s34\"]," +
            "[23,\"dg\",\"wdr3\"],[234,244,\"drydr\"]]";

    input = input.substring(2,input.lastIndexOf("]"));
    input = input.substring(0,input.lastIndexOf("]"));

    String outerArr[] = input.split("],\\[");
    String output[][]= new String[outerArr.length][];
    for(int i=0;i<outerArr.length;i++){
        output[i] = outerArr[i].split(",");
    }

    //print results
    for(int i=0;i<output.length;i++){
        for(int j=0;j<output[i].length;j++){
            System.out.println(output[i][j]);
        }
    }
}
Himanshu Tanwar
  • 906
  • 6
  • 18