web-dev-qa-db-ja.com

「org.json.simple.JSONObjectを解決できません」を解決するにはどうすればよいですか?

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-sources、org .json)。

Javaクラスをコンパイルすると、「一部の入力ファイルはチェックされていない、または安全でない操作を使用しています」というメッセージが表示されます。

5
Erik Escriche

まず、プロジェクトに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;
7
Devendra Lattu

あなたはmissingjson-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 からダウンロードできます。

私は明確にjarをダウンロードし、Eclipseシンプルに追加しました

次の手順に従ってください1.このリンクで.jarファイルをダウンロードします https://jar-download.com/artifacts/org.json 2. json.jarファイルを見つけて抽出します

eclipseで-プロジェクトを右クリックしてビルドパスに移動します-外部jarを追加します-ヒットを適用します

それは enter image description here it;それがみんなを助けることを願って

2
Frank HN

プロジェクトライブラリにjson-simple.jarのバージョンがありますか?

1
Suren Aznauryan

必要なjarをダウンロードできます。私にとっては、不足しているjson20140107 jarをダウンロードして、インポートステートメントを以下のように追加することができました。

import org.json.JSONException;

import org.json.simple.JSONObject;

1

これはorg.jsonパッケージで機能します:

ここからソースファイルをコピーします

https://github.com/stleary/JSON-Java

注:これは、 http://www.json.org/ から取得したソースコードリンク(JSON-Java)です。

\ src\org\jsonフォルダーに

Eclipseで、[パースペクティブを開く]ボタン、[リソース]の順にクリックします。 enter image description here

Org.jsonを右クリックし、[更新]をクリックしてJavaソースコードをプロジェクトに追加します。

0
live-love

どこにも正しい答えが見当たりませんでしたが、Tomcat JSONライブラリの問題はアーティファクトの展開にありました。 intelliJを使用している場合は、プロジェクト構造>>成果物に移動し、jarをlibフォルダーに追加します

プロジェクト構造を確認する

enter image description here

0