客户端(ajax)-server(jsp)json数据通信

时间:2015-06-26 05:53:21

标签: ajax json jsp

我正在尝试使用AJAX和JavaScript从客户端发送json数据。我的客户端代码工作正常(我试图在客户端本身打印json数据并成功完成)。服务器端我必须使用jsp。我在Web-INF中也包含了必要的jar文件。 有人可以帮助调试此错误  在线处理JSP页面时发生异常: JSONObject json_obj =(JSONObject)parser.parse(test);

这是我的json数据:  [{"姓名":" jayesh""姓":" talreja"}] 服务器端jsp代码:

<%@ page import="org.json.simple.JSONArray" %>
<%@ page import="org.json.simple.JSONObject" %>
<%@ page import="org.json.simple.parser.JSONParser" %>
<%@ page import="org.json.simple.parser.ParseException" %>
<%
    String test = (String)request.getParameter("JSON_OBJ");
    out.print(test);
    System.out.println(test);
    JSONParser parser = new JSONParser();
    JSONObject json_obj = (JSONObject)parser.parse(test);
    /*String input = (String)jsonObject;
    /*Object obj = parser.parse(test);
    JSONArray array = (JSONArray)obj;*/
    String firstName = (String)json_obj.get("firstname");
    String lastName = (String)json_obj.get("lastname");
    System.out.println("FirstName:" + firstName + "LastName:" + lastName);
    //System.out.println(input);
%>

2 个答案:

答案 0 :(得分:0)

Fist:如果此[{"firstname":"jayesh","lastname":"talreja"}]是您的JSON数据,则函数调用(String)json_obj.get("firstname")(String)json_obj.get("lastname")将失败,因为对象包含在数组中。

第二:给定的JSON数据有效。 (检查here)。您确定JSON数据之前或之后没有其他字符吗?你能给我更多关于例外的细节吗?

第三:您是否尝试过其他JSON数据或其他解析器?

答案 1 :(得分:0)

异常的更多细节! org.apache.jasper.JasperException:在第10行处理JSP页面/test/jayesh_server.jsp时发生异常

7:

out.print(test);
8:  System.out.println(test);
9:  JSONParser parser = new JSONParser();
10:     JSONObject json_obj = (JSONObject)parser.parse(test);
11: %>  
12: 
13: 


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:575)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

java.lang.NullPointerException
    java.io.StringReader.<init>(StringReader.java:50)
    org.json.simple.parser.JSONParser.parse(JSONParser.java:79)
    org.json.simple.parser.JSONParser.parse(JSONParser.java:75)
    org.apache.jsp.test.jayesh_005fserver_jsp._jspService(jayesh_005fserver_jsp.java:75)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)