需要将json数据从js发送到java

时间:2012-07-31 19:48:01

标签: java jquery json servlets

我的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");



  }
}

2 个答案:

答案 0 :(得分:2)

首先,您的JSON不正确。更正了JSON:

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

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

答案 1 :(得分:0)

以下更改对我有用: 的 FULLPATH =的contextPath \ servletname

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