如何在ajax请求中传递的servlet中使用json对象

时间:2012-10-21 15:51:05

标签: java javascript ajax jquery servlets

我对servlet进行了以下ajax调用。

$.ajax({ 
type: "post",
url: registersubmit.RegisterServlet.json,
dataType: "json",   
data:$('#registrationForm').serialize(),          
success: function(msg) {  
           //   alert(msg.data);
           alert('success'+msg.message2);     
},
error: function (xhr, ajaxOptions, thrownError){
         alert('HAI');
         alert('BYE');
}  
});

我是否知道如何使用servlet中的json对象

谢谢, 巴拉吉。

2 个答案:

答案 0 :(得分:1)

您可以使用GSON library可用于转换JSON表示的Java库 到Java对象,反之亦然

答案 1 :(得分:1)

这里有一个巨大的误解。您发送ajax请求的方式根本不会在服务器端的JSON对象中结束。所有数据都以request.getParameter()通常的方式提供。 $.serialize()只是将表单的所有输入值收集到一个JSON对象中,而JSON对象又是以$.ajax编码为HTTP查询字符串的常规方式。 JSON对象只是一种中间格式,允许您使用$.ajax轻松提交整个表单。

所以,

的数据
<form id="registrationForm" ...>
    <input name="foo" ... />
    <input name="bar" ... />
    <input name="baz" ... />
</form>

可以在servlet中完全以与同步(常规)提交相同的方式进行冲突

String foo = request.getParameter("foo");
String bar = request.getParameter("bar");
String baz = request.getParameter("baz");
// ...

请注意,dataType选项会指示jQuery $.ajax()应该处理响应的数据类型。它与请求发送数据的方式完全没有关系。它只是作为HTTP请求参数发送通常的方式。另请参阅$.ajax() documentation

另见: