【问题标题】:Need to send json data from js to java需要从js发送json数据到java
【发布时间】:2012-07-31 19:48:01
【问题描述】:

我的 javascript 中有一个 JSON 字符串,我需要将它发送到 java 类。我可以使用普通的 java 类还是必须使用 servlet?

另外,如何解析 JSON 数据?

我的 JSON 数据格式如下:

 var details=   { "CustomerDetails": [{'name':'Amy','age':'23'},
{'name':'Amj','age':'25'},{'name':'Amg','age':'27'}]};

我这样发送 json 字符串:

  var jsonText = JSON.stringify(details);  

    $.post('ServletClass', jsonText);  

WEB.xml:

<servlet>
<servlet-name>ServletClass</servlet-name>
<display-name>ServletClass</display-name>
<servlet-class>java.files.ServletClass</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletClass</servlet-name>
<url-pattern>/ServletClass</url-pattern>
</servlet-mapping>

在我的 servlet 方面: 我尝试做一个 system.out.println,但一无所获,传输是否正常进行

package XXXX;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.files.JSONObject;
import java.files.JSONSerializer;

public class ServletClass extends HttpServlet {
  public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {

  }

  public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {
      //          doGet(request, response);
      //JSONArray arrayObj = new JSONArray();
      JSONObject jsonObj = new JSONObject(jsonText);
      JSONArray the_
      json_array = jsonObj.getJSONArray("CustomerDetails");
      System.out.println("FINALLY HERE");



  }
}

【问题讨论】:

    标签: java jquery json servlets


    【解决方案1】:

    首先,你的 JSON 是不正确的。更正 JSON:

    { "CustomerDetails": [{'name':'Amy','age':'23'},{'name':'Amj','age':'25'},{'name':'Amg','age':'27'}]}
    

    如果您希望它是异步的,您应该使用 AJAX 将数据发送到 java 类。您将需要一个 servlet 来接受此请求,它将解析此 JSON,您可以对其进行必要的处理。查看 JacksonGSON 库以进行 JSON 解析。

    【讨论】:

    • 有没有例子可以指导我...我是 js 和 JSON 的新手
    • 对于 AJAX,您可以使用 jQuery library 与您的 servlet 进行通信。对于使用 GSON,您可以参考示例 herehereHere 是客户端调用 AJAX 调用 servlet 的示例。
    • 当你尝试一些东西时,发布你的代码以防你有任何问题或被阻止。
    • @HaranMurthy,我不太明白你的问题。
    • 抱歉输入错误.....编辑了主要问题。我不确定为什么我的 servlet 发布方法没有显示 sysout
    【解决方案2】:

    以下更改对我有用: fullpath=contextpath\servletname

    $.post(fullpath, {jsonText:jsonText}, function(data) {
        alert(data);
    });
    

    【讨论】:

      猜你喜欢
      • 2017-09-22
      • 2014-06-26
      • 1970-01-01
      • 2013-08-18
      • 2022-08-19
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 1970-01-01
      相关资源
      最近更新 更多