问题
When I try to open my jsp through Tomcat, I receive the following messages:
The type org.json.simple.JSONObject cannot be resolved. It is indirectly referenced from required .class files.
The method getJSONObject() from the type Ejercicio refers to the missing type JSONObject.
I have a java class that goes like this:
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;
}
}
My jsp goes as follows:
<%@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());
}
%>
I have added a lot of jars to both the lib folder inside WEB-INF and the Tomcat lib trying to solve the problem with no results (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-sources, org.json).
When I compiled the java class I got the "Some input files use unchecked or unsafe operations" message. Could this be related to the jps not compiling?
回答1:
Firstly, you don't need the json-simple.jar
in your project.
Therefore remove the import org.json.simple.*
Secondly, the best practice is to import only the required classes from your jar.Therefore you can replace import org.json.*;
by
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONString;
回答2:
You are missing json-simple-1.1.1.jar
from your classpath.
if you are using Maven, add below into your pom.xml.
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
Or you can download it from here.
回答3:
for me definetely downloded the jar and add it to eclipse simple
just follow these steps 1. download the .jar file at this link https://jar-download.com/artifacts/org.json 2. locate and extract the json.jar file
in eclipse -right click on your project and go to build path -add external jar -hit apply
that's it ; hope it helps guys
回答4:
Is some version of json-simple.jar
in your project libs ?
回答5:
You can download the requisite jar, for me what worked is the downloading of my missing json20140107 jar and adding the import statements as below:
import org.json.JSONException;
import org.json.simple.JSONObject;
回答6:
I didn't see the right answer anywhere but my TomCat JSON library problem was with the artifact deployment. If you're using intelliJ, go to project structure >> artifacts and add the jar to your lib folder
Check out my project structure
回答7:
This works for the org.json package:
Copy the source files from here
https://github.com/stleary/JSON-java
Note: this is the source code link (JSON-java) taken from from http://www.json.org/
into \src\org\json folder
In Eclipse, click the Open perspective button, then Resource.
Right click on org.json and then hit Refresh to add the java source code into the project.
来源:https://stackoverflow.com/questions/43813670/how-can-i-solve-org-json-simple-jsonobject-cannot-be-resolved