68

私はジャクソンが初めてで、練習用のコードを書いていました。Jackson ライブラリの新しいバージョンが Fasterxml: Jacksonにあることがわかったので、以下の依存関係を Maven pom ファイルに追加しました。

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.2.2</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.2.2</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.2.2</version>
</dependency>

を直接使用できると思っていObjectMapperましたが、多くの時間を費やした後、使用するObjectMapperには以下の古いライブラリを追加する必要があることがわかりました。

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.9.2</version>
</dependency>
<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-core-asl</artifactId>
    <version>1.9.2</version>
</dependency>

私は少し混乱しています。誰かがそれがなぜなのか教えてもらえますか?

4

5 に答える 5

55
<properties>
  <!-- Use the latest version whenever possible. -->
  <jackson.version>2.4.4</jackson.version>
</properties>
<dependencies>
   <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>${jackson.version}</version>
  </dependency>
</dependencies>

ObjectMapper (Jackson Databind パッケージから) が便利です。もしそうなら、あなたはすることができます:

JsonFactory factory = objectMapper.getFactory();

ソース: https://github.com/FasterXML/jackson-core

つまり、すでに u'r pom にある 3 つの「fasterxml」依存関係は、jackson-databind が含まれているため、ObjectMapper には十分です。

于 2015-02-24T13:25:15.480 に答える
11

いいえ、単に使用できますcom.fasterxml.jackson.databind.ObjectMapper。ほとんどの場合、ステートメントを修正するのを忘れ、importcodehaus へのすべての参照を削除すると、成功します。

于 2014-10-07T14:41:09.350 に答える
2

私はこれに数時間を費やしました。

適切な依存関係があったとしても、C:\Users\username.m2 の下の .m2 リポジトリにある com.fasterxml.jackson フォルダーを削除し、プロジェクトを更新した後にのみ問題が修正されました。

于 2016-11-05T12:04:53.010 に答える
1

インポートの修正とは別に、新たにmaven clean compile -U. -Uエディターが苦労することがある新しい依存関係をもたらすオプションに注意してください。インポートされていないクラスが原因でコンパイルが失敗するようにしますが、少なくとも maven コマンドの後にそれらをインポートするオプションがあります。

Maven-> Intellijから再インポートするだけではうまくいきませんでした。

于 2017-07-14T22:01:22.967 に答える