当前位置: 首页 > 面试题库 >

读取Servlet中的JSON字符串

楚彦
2023-03-14
问题内容

我正在将jQuery AJAX POST发布到Servlet,并且数据采用JSON字符串的形式。它已成功发布,但在Servlet端,我需要将这些键-
值对读入Session Object并将其存储。我尝试使用JSONObject类,但无法获取它。

这是代码段

$(function(){
   $.ajax(
   {
      data: mydata,   //mydata={"name":"abc","age":"21"}
      method:POST,
      url: ../MyServlet,
      success: function(response){alert(response);
   }
});

在Servlet方面

public doPost(HTTPServletRequest req, HTTPServletResponse res)
{
     HTTPSession session = new Session(false);
     JSONObject jObj    = new JSONObject();
     JSONObject newObj = jObj.getJSONObject(request.getParameter("mydata"));
     Enumeration eNames = newObj.keys(); //gets all the keys

     while(eNames.hasNextElement())
     {
         // Here I need to retrieve the values of the JSON string
         // and add it to the session
     }
}

问题答案:

您实际上并没有解析json。

JSONObject jObj = new JSONObject(request.getParameter("mydata")); // this parses the json
Iterator it = jObj.keys(); //gets all the keys

while(it.hasNext())
{
    String key = it.next(); // get key
    Object o = jObj.get(key); // get value
    session.putValue(key, o); // store in session
}


 类似资料:
  • 问题内容: 我有一个有效的Json格式的字符串,它看起来像这样: 我想读取不同的字段,例如所有fa_titles,我使用$ obj = json_decode($ str,true); 将此转换为Json,然后回显sizeof($ obj [‘result’]); 告诉我它有5个结果对象,但是现在如何访问fa_title或en_title字段? 问题答案: 在JSON中,数组由方括号(和)指定,而

  • 我得到了一个复杂的JSON字符串,如下所示。 这还不完整。但这怎么读呢?

  • 问题内容: 我是java的新手,我为这个问题苦苦挣扎了2天,最后决定在这里提问。 我正在尝试读取jQuery发送的数据,因此可以在servlet中使用它 jQuery的 Servlet 我非常感谢您可以提供的任何帮助。 问题答案: 除非正确发送,否则将无法在服务器上对其进行解析: 您必须使用JSON字符串来发送JavaScript对象。 然后在服务器上: 您可以手动或使用任何库来解析字符串(我建议

  • 这是我的json字符串: 我想迭代数组,因为我将为每个数组成员创建一个特殊对象。 这就是我从http url获取json字符串的方式。 你能给我举个例子,说明如何获得所有json元素的数组吗。一个数组元素必须包含id、ip和folderName。

  • 我刚来Java,如果这是个明显的问题,我很抱歉。 我正在尝试逐个字符读取字符串以创建树节点。例如,输入,节点为 我注意到了 我可以用一个循环来获得所有的角色吗?就像 我试过了,但不管用。 我该怎么做? 非常感谢你的帮助。 扫描器读取器=新扫描器(System.in);System.out.println(“将节点输入为大写字母,不带空格,结尾为'/'”);int i=0;char node=rea

  • 我需要将对象保存在一个文件中。我使用GSON库。写入文件很容易,但是读取很复杂。我一个接一个地读取整个文件,但是这个解决方案效率很低。如何只读取一个JSON字符串?我不知道如何做得更好。请帮帮我。谢谢你