2013-04-22 93 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()