【问题标题】:How can I solve "org.json.simple.JSONObject cannot be resolved"?如何解决“org.json.simple.JSONObject 无法解析”?
【发布时间】: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没有编译有关吗?

【问题讨论】:

    标签: java json jsp tomcat jar


    【解决方案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 源代码添加到项目中。

          【讨论】:

            猜你喜欢
            • 2013-07-30
            • 1970-01-01
            • 2016-11-02
            • 2016-08-22
            • 1970-01-01
            • 1970-01-01
            • 2017-08-10
            • 2020-09-11
            • 2017-09-29
            相关资源
            最近更新 更多