2016-03-15 4 views
2

В моем массиве, как это:Как передать массив в классе контроллера

{ 
    "keys": [ 
     "a", 
     "b", 
     "c", 
     "d", 
     "e", 
     "f" 
    ], 
    "data": [ 
     [ 
      "hh", 
      "hh", 
      "jk", 
      "ggh", 
      "hvh", 
      null 
     ], 
     [ 
      "dd", 
      "gg", 
      null, 
      "nn", 
      "rr", 
      "jj" 
     ] 
    ] 
} 

Я хочу передать выше массива данных в классе контроллера:

$.ajax({ 
         url: '/MobitelProgressTool/wifi_mane', 
         data: JSON.stringify(list), 
         type: 'POST', //<== not 'GET', 
         contentType: "application/json; charset=utf-8", 
         dataType: 'json', 
         error: function() { 
          console.log("error"); 
         }, 
         success: function (arr) { 
          console.log(arr.testArray); 
          var testArray = arr.testArray; 
          $.each(function (i, e) { 
           document.writeln(e); 
          }); 
         } 
        }); 

класс контроллера ...

RequestMapping(value = {"/wifi_mane"}, method = RequestMethod.POST) 
    @ResponseBody// <== this annotation will bind Arr class and convert to json response. 
    public Arr addAnotherAppointment(HttpServletRequest request, HttpServletResponse response, @RequestBody Arr arr, Model model, BindingResult errors) { 
     System.out.println("^^^^^^^^^^" + arr.getTestArray()); 
     return arr; 
    } 

Мой класс массив:

public class Arr { 
    private List<String> testArray; 

    /** 
    * @return the testArray 
    */ 
    public List<String> getTestArray() { 
     return testArray; 
    } 

    /** 
    * @param testArray the testArray to set 
    */ 
    public void setTestArray(List<String> testArray) { 
     this.testArray = testArray; 
    } 

но я не могу передать данные массива?

ответ

0

Попробуйте это, я думаю, что это должно работать:

public class Arr { 
    private List<String> keys; 
    private List<List<String>> data; 

    //... getters and setters 
}