2016-03-30 10 views
0

Ich habe ein 2-dimensionalen Array wie diese mit Ajax gebenJavaScript-Array in zwei dreidimensionales Objekt Array in Java

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 Servlet muß ich die Werte in einen 2-dimensionalen Array abzurufen ich versucht habe, mit

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

Aber es stellt alle Werte in 0-Index (data [0])

+0

Sie müssen durchlaufen und –

+0

bevölkern Wenn es 'bidimensional', warum Sie instanziieren ein' 'unidimensional' Daten []' Array statt 'data [] []'? – Cristy

+0

Lesen Sie auch diese Frage, es könnte helfen: http://stackoverflow.com/questions/1067073/initializing-a-multidimensional-array-in-java – Cristy

Antwort

0

Sie sollten Code sein:

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

Sie müssen die Zeichenfolge analysieren versuchen, mit dieser Methode gson

+0

Wie ist das anders von seiner tatsächlichen Code? – Cristy

+0

Dieser Code wird nicht einmal – Arvind

+1

Code aktualisiert. Weitere Informationen finden Sie unter http://stackoverflow.com/questions/19568142/how-to-read-json-sent-by-ajax-in-servlet. – ozOli

-1

versuchen. Ändern Sie den Wert der Eingabe nach Bedarf.

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]); 
     } 
    } 
} 
+0

kann ich den Grund für die Abstimmung unten wissen? –

Verwandte Themen