2013-04-22 92 views
0

我正在通過以下方式將servlet傳遞給jQuery。發送從servlet到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」 中

現在什麼,我需要做的,如果不是的發送正常的文本我想發送一個對象或一個字符串數組作爲響應?

中的servlet我有以下陣列

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

和jQuery中我想用

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

得到結果 「N1」

+1

HTTP只發送和接收字符串。由您決定如何解釋這些字符串,例如JSON或其他形式的類型轉換。 – 2013-04-22 22:12:35

回答

3

你可以用」直接在服務器和瀏覽器之間發送對象,但你可以做的是將它們序列化成JSON文本rmat(這就是JSON的發明)。服務器端的JSON.serialize()(或其他語言的同等設備)和客戶端的JSON.parse()

如果您在jQuery ajax調用中將數據類型指定爲JSON,它將自動爲您解析它,因此您甚至不必致電JSON.parse()