2013-04-22 2 views
0

Я передаю сервлет jQuery следующим образом.Отправить ответ от сервлета к вызову ajax как объект

JQuery:

$('.snd').click(function(){ 
    $.ajax({ 
     url: '/ProjectName/ServletName?action=test', 
     data: {cl1: $('.t11').val()}, 
     success: function (response){ 
      $('.t12').val(response); 
     } 
    }); 
}); 

Servlet

if (action.compareTo("test") == 0) { 
      action = "abc"; 

      response.setContentType("text/html;charset=UTF-8"); 
      PrintWriter out = response.getWriter(); 

      try { 

       out.println("text1"); 
      } finally { 
       out.close(); 
      } 
     } 

Делая это, я получаю результат "text1"

Теперь то, что мне нужно делать, если вместо отправка обычного текста Я хочу отправить объект или массив String в jQuery в качестве ответа?

например

в сервлет У меня есть следующий массив

String[] ss= {"n1","n2"}; 

и JQuery Я хочу использовать

$('.t12').val(response[0]); 

, чтобы получить результат "n1"

+1

HTTP только отправляет и принимает строки. Вам решать, как интерпретировать эти строки, например, JSON или другие формы преобразования типов. –

ответ

3

Вы можете» t отправлять объекты непосредственно между сервером и браузером, но то, что вы можете сделать, это сериализовать их в текст JSON fo rmat (для этого был изобретен JSON). JSON.serialize() (или эквивалент на других языках) на стороне сервера и JSON.parse() на стороне клиента.

Если вы укажете тип данных как JSON в jQuery ajax-вызове, он автоматически проанализирует его для вас, поэтому вам даже не нужно звонить JSON.parse().

Смежные вопросы