Как отправить массив JS в Ajax - PullRequest
9 голосов
/ 25 ноября 2011

Я создал массив JS, подобный этому var detailsArr = new Array();, и помещаю некоторые данные в этот массив.

Теперь я помещаю этот массив через Ajax в свой Spring Controller, как этот

$.ajax({
            type: "POST",
            url: "submit",
            data: ({detailsArr : detailsArr }),
            success: function(html){
              alert( "Submitted");
                }
          });

На стороне Spring Controller я получаю этот массив через аннотацию @RequestBody.Сигнатура метода Spring Controller выглядит следующим образом

public String submit(@RequestBody String body) 

Но массив при получении на стороне Spring Controller в основном представляет собой строку этого формата

detailsArr[]=add&detailsArr[]=test1&detailsArr[]=test2&detailsArr[]=test3

Я должен вручную разбить эту строкучтобы получить значения, это громоздкий процесс.Есть ли способ, с помощью которого я могу получить массив таким, какой он есть, так что мне просто нужно перебрать его, чтобы получить значения.

Ответы [ 2 ]

9 голосов
/ 25 ноября 2011

вы должны передать свой массив на сервер в формате json.И преобразовать его с помощью Json для преобразования объектов.Вы можете использовать Gson.

на стороне клиента:

$.ajax({
            type: "POST",
            url: "submit",
            data:JSON.stringify(detailsArr),
            success: function(html){
              alert( "Submitted");
                }
          });

на стороне сервера:

public String submit(@RequestBody String body){
//convert body to array using JSONLib, FlexJSON or Gson
}
6 голосов
/ 25 ноября 2011

Передавая его вашему контроллеру, передайте его так:

data:JSON.stringify(detailsArr);

На вашем контроллере вы можете декодировать полученный JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...