如何解决“org.json.simple.JSONObject 无法解析”?
Posted
技术标签:
【中文标题】如何解决“org.json.simple.JSONObject 无法解析”?【英文标题】:How can I solve "org.json.simple.JSONObject cannot be resolved"? 【发布时间】:2017-10-04 10:48:45 【问题描述】:当我尝试通过 Tomcat 打开我的 jsp 时,我收到以下消息:
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-INF 内的 lib 文件夹和 Tomcat lib 中添加了很多 jar,试图解决没有结果的问题(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-来源,org.json)。
当我编译 java 类时,我收到“一些输入文件使用未经检查或不安全的操作”消息。这可能与jps没有编译有关吗?
【问题讨论】:
【参考方案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下载。
【讨论】:
你说“从你的类路径”是什么意思?我在我的项目库中添加了json-simple-1.1.1
,并使用以下语句再次编译了该类:javac -cp .;"C:\Program Files\apache-tomcat-8.5.13\webapps\Heroismo\WEB-INF\lib\*" Ejercicio.java
,但是在尝试打开 jsp 时出现相同的错误。我不认识 Maven。【参考方案2】:
首先,您的项目中不需要json-simple.jar
。
因此删除import org.json.simple.*
其次,最好的做法是只从你的 jar 中导入需要的类。因此你可以用
替换import org.json.*;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONString;
【讨论】:
【参考方案3】:对我来说,我明确地下载了 jar 并将其添加到 eclipse simple
只需按照以下步骤操作 1.在这个链接https://jar-download.com/artifacts/org.json下载.jar文件 2.找到并解压json.jar文件
在日食中 -右键单击您的项目并转到构建路径 -添加外部jar -点击应用
那是it;希望对大家有帮助
【讨论】:
另外:有时这些库在“订购和导出”选项卡中被禁用,因此即使添加了它们,项目也不会提取它们。【参考方案4】:您的项目库中有json-simple.jar
的某个版本吗?
【讨论】:
是的。在阅读您的评论之前,我只有一个名为json-simple-1.1.1-sources
的罐子。现在我添加了json-simple-1.1.1
,但是在尝试打开jsp时出现同样的错误。【参考方案5】:
您可以下载必要的 jar,对我来说,下载我丢失的 json20140107 jar 并添加导入语句如下:
导入 org.json.JSONException;
导入 org.json.simple.JSONObject;
【讨论】:
【参考方案6】:我在任何地方都没有看到正确的答案,但我的 TomCat JSON 库问题与工件部署有关。如果您使用的是 intelliJ,请转到项目结构 >> 工件并将 jar 添加到您的 lib 文件夹中
查看我的项目结构
【讨论】:
【参考方案7】:这适用于 org.json 包:
从这里复制源文件
https://github.com/stleary/JSON-java
注意:这是来自http://www.json.org/的源代码链接(JSON-java)
进入 \src\org\json 文件夹
在 Eclipse 中,单击打开透视图按钮,然后单击资源。
右击 org.json 然后点击 Refresh 将 java 源代码添加到项目中。
【讨论】:
以上是关于如何解决“org.json.simple.JSONObject 无法解析”?的主要内容,如果未能解决你的问题,请参考以下文章