为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

LEATH 2021-05-07 09:21:49
我正在使用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");这将返回空值。如何准确地从对象中检索所需的数据值?
查看完整描述

2 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

当您使用以下代码行时,String recipient = request.getParameter("recipient"); 它将在


           $.ajax({

           url: 'page.jsp',

           type: 'POST',

           data: {


                 info:data


           }

但是,幸运的是,没有收件人,您的ajax中只有信息密钥。因此,您可以使用getParameter(“ info”)来获取数据。现在您有了数据。


请参考以下代码


$.ajax({

           url: 'page.jsp',

           type: 'POST',

           data: data

我想现在你可以使用 String recipient = request.getParameter("recipient");


查看完整回答
反对 回复 2021-05-13
?
噜噜哒

TA贡献1784条经验 获得超7个赞

request.getParameter("recipient");会在您的数据中寻找收件人密钥。但是您的密码info不是recipient(这是信息的一部分)。要访问收件人,您必须首先request.getParameter("info")使用任何JSON解析库解析收到的JSON(),然后从已解析的JSON对象访问收件人。


在您的ajax中,以json格式传递数据


$ .ajax({


           url: 'page.jsp',

           type: 'POST',

           dataType: 'JSON',

           data: {

                 info:data

           },


           success: function (data) {

               alert("Successfully initiated email to queue");

           },

           error: function (request, error) {

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

           }

       });

在您的servlet端,像这样解析json:


JsonParser parser = new JsonParser();


String json = request.getParameter("info");


JsonElement jsonTree = parser.parse(json);

String recipientjsonTree.get("recipient");

JsonParser 是GSON库的一部分。


查看完整回答
反对 回复 2021-05-13
  • 2 回答
  • 0 关注
  • 165 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信