2015-08-05 4 views
0

Я отправляю данные массива json из JSP в класс Action, для которого я включил struts2-json-plugin. Я хочу разобрать его, чтобы получить его как ArrayList элементов. мой кодКак разобрать полученные данные json в действии

В JSP:

$.ajax({ 
     url: "UpdateNotification", 
     dataType: "json", 
     data: {ids: JSON.stringify(ids)}, 
     success: function(data) { 
      alert("success " + data.st); 
     } 
    }) 

В действии:

public class Test extends ActionSupport { 
    ArrayList<String> ids = new ArrayList<String>(); 

     public ArrayList<String> getIds() { 
      return ids; 
     } 

     public void setIds(ArrayList<String> ids) { 
      this.ids = ids; 
     } 

     public String updateNotification() { 
       System.out.println("ID ARE " + getIds()); 
        for (String a : getIds()) { 
         System.out.println("data " + a); 
        } 
      } 
     } 

При управлении он показывает данные

ID ARE [["25","27","28"]] 
    data ["25","27","28"] 

Как я могу получить один да ta как один элемент массива в действии.

EDIT Я пытаюсь получить данные как

ids(0)=25; 
ids(1)=27; 
ids(2)=28; 
+0

Какая версия S2? Старые версии плагина S2 json не поддерживают прямые json-массивы. Вы настроили jsoninterceptor? –

+0

Я использую struts2.3.15.3 – xrcwrn

+0

NO Я еще не настроил что-то только включенное 'struts2-json-plugin' – xrcwrn

ответ

1

Json stringify метод возвращает массив значений в формате JSON что-то вроде ["25","27","28"]. Но для преобразования в список вам нужно удалить [ или ] символов для отправки CSV-значений. Потому что только CSV-значения могут быть преобразованы в список. Попробуйте

data: {ids: JSON.stringify(ids).replace(/[\[\]]/g,'')}, 
+0

Он не заменяет [и] получение того же значения – xrcwrn

+0

@xrcwrn Слушайте, я даю вам представление, и вы сами пытаетесь это сделать, я не могу проверить его в своей среде, но я знаю, что замена должна работать, а если нет, то вы должны ее протестировать. Вы также можете сообщить мне, что с ним не так, и я обновлю ответ. –

+0

Хорошо. Это givinng то же значение – xrcwrn