java - net.sf.json.JSONException异常

标签 java javascript json multidimensional-array jsonexception

我转换了一个普通的 JavaScript array(在一个 JSP 页面中),对该数组执行了一个 JSON.stringify() 并将其传递给另一个 JSP 作为一个参数。在另一个 JSP 中,我使用 request.getParameter() 读取它。

现在,在将字符串转换为 JSONArray 时,我遇到了这样的异常-

net.sf.json.JSONException: Missing value. at character 2 of [[\"111\", \"1.1.1.1\", \"111\", \"111\", \"111\"]]
at net.sf.json.util.JSONTokener.syntaxError(JSONTokener.java:505)
        at net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:377)
        at net.sf.json.JSONArray._fromJSONTokener(JSONArray.java:1132)
        at net.sf.json.JSONArray.fromObject(JSONArray.java:125)
        at net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:350)
        at net.sf.json.JSONArray._fromJSONTokener(JSONArray.java:1132)
        at net.sf.json.JSONArray._fromString(JSONArray.java:1198)
        at net.sf.json.JSONArray.fromObject(JSONArray.java:127)
        at net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:137)
        at net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:103)
        at net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:84)
        at org.apache.jsp.pages.Handler_jsp._jspService(Handler_jsp.java:146)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
        at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
        at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:274)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
        at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:320)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
        at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1813)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)

这就是我的来自 request.getParameter() 的字符串的样子-

[[\"111\", \"1.1.1.1\", \"111\", \"111\", \"111\"]]

什么是 net.sf.json.JSONException:缺少值。在 [[\"111\",\"1.1.1.1\",\"111\",\"111\",\"111\"]] 的字符 2 是什么意思?我该如何处理?

最佳答案

我想通了。它抛出该异常的原因是因为它在 [[ 之后期望 " 而不是 \"。我所做的只是 [[\"111\",\"1.1.1.1\",\"111\",\"111\",\"111\"]].replaceAll("\\\"", "\"").

关于java - net.sf.json.JSONException异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14830525/

相关文章:

java - 在 Java 8 中使用 lambda 出现意外错误

java - EJB 无接口(interface) View 测试(arquillain 和 mockito)

javascript - 在标记弹出窗口上显示自定义内容的功能

javascript - ASP.NET 更改页面时更改 session 值

python - 使用 Python 在 JSON 文件中添加随机整数

java - 如何在页面加载时打开模态对话框

java - Spring中DataBinder中setAllowedFields和setDisallowedFields方法的影响

javascript - 将对象追加到 DOM,缓冲事件直到下一个刻度?

javascript - 将\u00f0\u009f\u0098\u008a 等 Facebook json 文件序列转换为表情符号字符

java - 将 json 解析为 java 对象时出错 : java. lang.NullPointerException