2017-05-05 261 views
2

当我尝试打开通过Tomcat的我JSP,我收到以下消息:我该如何解决“org.json.simple.JSONObject无法解析”?

类型org.json.simple.JSONObject不能得到解决。它是从所需的.class文件间接引用的。

Ejercicio类型的getJSONObject()方法引用缺少的类型JSONObject。

我有一个Java类,它是这样的:

package E; 
    import org.json.simple.*; 
    import javax.json.*; 
    import org.json.*; 

    public class Ejercicio { 
     public int a; 
     public String b; 

    public Ejercicio (int a, String b) { 
     this.a=a; 
     this.b=b; 
     } 

    public JSONObject getJSONObject() { 
     JSONObject obj = new JSONObject(); 
     obj.put("a", a); 
     obj.put("b", b); 
     return obj; 
     } 
    } 

我的JSP去如下:

<%@page import="java.io.*" %> 
    <%@page import="java.util.*"%> 
    <%@page import="E.Ejercicio"%> 
    <%@page import="javax.json.*"%> 
    <%@page import="org.json.simple.*"%> 
    <%@page import="org.json.*"%> 
    <%@page import="net.sf.json.*" %> 

    <% 
    ArrayList<Ejercicio> miArray = new ArrayList<Ejercicio>(); 
    miArray.add(new Ejercicio (1,"Hola")); 
    miArray.add(new Ejercicio (2,"Caracola")); 
    miArray.add(new Ejercicio (3,"Perola")); 
    for (Ejercicio temp:miArray) { 
     out.println("<p>"+temp.b+"</p>"); 
     } 

    JSONArray jsonArray = new JSONArray(); 
    for (int i=0; i < miArray.size(); i++) { 
     jsonArray.put(miArray.get(i).getJSONObject()); 
     } 
    %> 

我已经加了很多罐子内外WEB lib文件夹中-INF和Tomcat lib试图解决没有结果的问题(commons-beanutils-1.8.1,commons-collections-3.2.1,commons-lang-2.5,commons-logging-1.1.1,ezmorph-1.0.6 ,java-json,javax.json-1.0,json-lib-2.4-jdk15,json-rpc-1.0,json-simple-1.1.1-source s,org.json)。

当我编译java类时,我得到了“一些输入文件使用未经检查或不安全的操作”消息。这可能与jps不编译有关吗?

回答

4

首先,您不需要项目中的json-simple.jar
因此删除import org.json.simple.*

其次,最好的做法是进口只会从jar.Therefore所需的类可以通过

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 
import org.json.JSONString; 
1

你是失踪json-simple-1.1.1.jar从你的类路径。

如果您正在使用Maven,请将以下内容添加到您的pom.xml中。

<dependency> 
    <groupId>com.googlecode.json-simple</groupId> 
    <artifactId>json-simple</artifactId> 
    <version>1.1.1</version> 
</dependency> 

或者你可以从here下载。

+0

取代import org.json.*;你是什么意思时,你说:“从你的类路径”做?我在我的项目库中添加了'json-simple-1.1.1',并用下面的语句重新编译了类:'javac -cp。;'C:\ Program Files \ apache-tomcat-8.5.13 \ webapps \ Heroismo \ WEB-INF \ lib \ *“Ejercicio.java”,但在尝试打开jsp时出现同样的错误。我不知道Maven。 –

1

是否在您的项目库中有json-simple.jar的版本?

+0

是的。在阅读你的评论之前,我只有一个名为'json-simple-1.1.1-sources'的jar。现在我添加了'json-simple-1.1.1',但在尝试打开jsp时出现同样的错误。 –

相关问题