7

次のエラーが表示されます - 依存関係に GSon を追加しました -

誰かが私が間違っていることを指摘できますか?

ここに画像の説明を入力

編集:依存関係の指定-

   <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>1.7.1</version>
    </dependency>

私は自分のサーブレットで次のコードを使用しています -

 JSONService json = new JSONService();
    String json_output = json.makeLoginJSON(user);

makeLoginJSON ---

   public String makeLoginJSON(LoginDetails user) {
    String FinalJson = null;
    Gson gson = new Gson();
    FinalJson = gson.toJson(user);      
    return FinalJson;       
}
4

4 に答える 4

18

試す:

<dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.1</version>
        <scope>provided</scope>
</dependency>

コメントを編集してスコープを追加しました。デフォルトのスコープはコンパイルです。これは、実行時に依存関係が存在しないことを意味します。このために、提供されたスコープを使用します。ApacheのMaven依存関係の概要に関するMaven依存関係のスコープの詳細。

これで問題が解決することを願っています。

PS:独自のリポジトリを作成している場合は、こちらもご覧ください。

于 2012-07-09T20:57:20.923 に答える
3

ラウルの答えを明確にするだけです-それがうまくいくのは良いことですが、提供されるのは、JRE/JDK、つまりサーブレットクラスから利用できると予想される依存関係です。Compile はデフォルトであり、gson は JRE から入手できないため、他のユーザーの場合でも機能するはずです。代わりに、maven でダウンロードする必要があります。http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scopeから:

compile これはデフォルトのスコープで、何も指定されていない場合に使用されます。コンパイルの依存関係は、プロジェクトのすべてのクラスパスで利用できます。さらに、それらの依存関係は依存プロジェクトに伝播されます。

これは compile によく似ていますが、JDK またはコンテナーが実行時に依存関係を提供することを期待していることを示します。たとえば、Java Enterprise Edition 用の Web アプリケーションを構築する場合、サーブレット API および関連する Java EE API への依存関係を提供範囲に設定します。これは、Web コンテナーがこれらのクラスを提供するためです。このスコープは、コンパイルおよびテスト クラスパスでのみ使用でき、推移的ではありません。

runtime このスコープは、依存関係がコンパイルには必要ないが、実行には必要であることを示します。これはランタイムおよびテスト クラスパスにありますが、コンパイル クラスパスにはありません。

test このスコープは、依存関係がアプリケーションの通常の使用には必要なく、テストのコンパイルおよび実行フェーズでのみ使用できることを示します。

system このスコープは、それを含む JAR を明示的に提供する必要があることを除いて、provided と似ています。アーティファクトは常に利用可能で、リポジトリで検索されません。

import (Maven 2.0.9 以降でのみ使用可能) このスコープは、セクション内のタイプ pom の依存関係でのみ使用されます。これは、指定された POM をその POM のセクションの依存関係に置き換える必要があることを示します。それらは置き換えられるため、インポートのスコープを持つ依存関係は、依存関係の推移性の制限に実際には関与しません。

于 2013-08-20T00:31:24.610 に答える
-2

これらのインポートを追加します。

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
于 2020-09-16T03:26:38.770 に答える
-3

試す:

<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.1.21</version>
</dependency>

非常に速く、使いやすい。

VO obj = ...;
String jsonString = JSON.toJSONString(obj);

VO obj2 = JSON.parseObject(jsonString, VO.class);
于 2012-07-09T23:02:46.297 に答える