0

我正在通过以下方式将 servlet 与 jQuery 通信。

jQuery:

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

小服务程序

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”

现在,如果不是发送普通文本,而是想向 jQuery 发送一个对象或字符串数​​组作为响应,我需要做什么?

例如

在 servlet 我有以下数组

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

在 jQuery 中我想使用

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

得到结果“n1”

4

1 回答 1

3

您不能直接在服务器和浏览器之间发送对象,但是您可以将它们序列化为 JSON 文本格式(这就是 JSON 的发明目的)。 JSON.serialize()(或其他语言的等价物)在服务器端和JSON.parse()客户端。

如果您在 jQuery ajax 调用中将数据类型指定为 JSON,它将自动为您解析,因此您甚至不必调用JSON.parse().

于 2013-04-22T22:11:38.970 回答