我正在通过以下方式将servlet传递给jQuery。
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?
e.g
在servlet中我有以下数组String[] ss= {"n1","n2"};
在jQuery中我想使用
$('.t12').val(response[0]);
获得结果“n1”
答案 0 :(得分:3)
您不能直接在服务器和浏览器之间发送对象,但您可以做的是将它们序列化为JSON文本格式(这就是JSON的发明)。服务器端JSON.serialize()
(或其他语言的等价物)和客户端JSON.parse()
。
如果您在jQuery ajax调用中将数据类型指定为JSON,它将自动为您解析它,因此您甚至不必调用JSON.parse()
。