如果存储为对象,如何检索数据?

我正在使用ajax将数据传递到servlet。据我所知,标准方法通常是这样的:


$.ajax({


               url: 'page.jsp',

               type: 'POST',

               data: {


                     id:value,

                     name:value2


               },


               success: function (data) {

                   alert("Successfully initiated email to queue");

               },

               error: function (request, error) {

                   alert("Request: " + JSON.stringify(error));

               }

           });

然后在jsp页面中,将这样检索数据:


String id = request.getParameter("id");

String name = request.getParameter("name");

毫无疑问,这将起作用。现在,如果我想将数据存储为对象怎么办。在我的JavaScript中是这样的:


 var data;


     if(condition){


       data={

                'recipient': recipient,

                'subject': subject,

                'content': content,

                'id':"<%=id%>",

                'hash':"<%=hash%>",

                'multiemail':"no"


            }


    }else{


          data= {

                'recipient': recipient,

                'subject': subject,

                'content': content,

                'arrayList':<%=array%>,

                'multiemail':"yes"


            }


    }

  $.ajax({


               url: 'page.jsp',

               type: 'POST',

               data: {


                     info:data


               },


               success: function (data) {

                   alert("Successfully initiated email to queue");

               },

               error: function (request, error) {

                   alert("Request: " + JSON.stringify(error));

               }

           });

然后,我使用相同的方式:


 String recipient = request.getParameter("recipient");

这将返回空值。如何准确地从对象中检索所需的数据值?


LEATH
浏览 166回答 2
2回答

喵喔喔

当您使用以下代码行时,String recipient = request.getParameter("recipient"); 它将在&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$.ajax({&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;url: 'page.jsp',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;type: 'POST',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;data: {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;info:data&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}但是,幸运的是,没有收件人,您的ajax中只有信息密钥。因此,您可以使用getParameter(“ info”)来获取数据。现在您有了数据。请参考以下代码$.ajax({&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;url: 'page.jsp',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;type: 'POST',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;data: data我想现在你可以使用 String recipient = request.getParameter("recipient");

噜噜哒

request.getParameter("recipient");会在您的数据中寻找收件人密钥。但是您的密码info不是recipient(这是信息的一部分)。要访问收件人,您必须首先request.getParameter("info")使用任何JSON解析库解析收到的JSON(),然后从已解析的JSON对象访问收件人。在您的ajax中,以json格式传递数据$ .ajax({&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;url: 'page.jsp',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;type: 'POST',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dataType: 'JSON',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;data: {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;info:data&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;},&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;success: function (data) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;alert("Successfully initiated email to queue");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;},&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;error: function (request, error) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;alert("Request: " + JSON.stringify(error));&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp; &nbsp;});在您的servlet端,像这样解析json:JsonParser parser = new JsonParser();String json = request.getParameter("info");JsonElement jsonTree = parser.parse(json);String recipientjsonTree.get("recipient");JsonParser 是GSON库的一部分。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript