0

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



  }
}
4

2 回答 2

2

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

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

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

于 2012-07-31T19:51:04.850 回答
0

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

$.post(fullpath, {jsonText:jsonText}, function(data) {
    alert(data);
});
于 2012-08-06T15:04:20.430 回答