2013-08-25 25 views
42

私はジャクソンを初めて勉強しました。 Jacksonので、私は私のMavenのPOMファイルに以下の依存関係を追加しました:私は、ジャクソンライブラリの新しいバージョンがFasterxml上で見つけることができていジャパンマッパーを使用するための依存関係を修正しました

<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を使用することができることを期待していました、

<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> 

私は少し混乱しています。しかし、多くの時間を過ごした後、私はそれは私が下の古いライブラリを追加する必要がObjectMapperを使用することが分かりました。誰かが私になぜそれが教えてもらえますか?

+0

パッケージ名に問題がありますか?私の知る限りcom.fasterxml.jackson.databind.ObjectMapperはjackson-databind-2.2.2.jarの一部です – efan

+0

問題は最後の2つの依存関係を削除するとすぐに問題になります。 ObjectMapperのためにコードをコンパイルできません。 「パッケージ名」はどういう意味ですか? thx – Hossein

+6

私の場合、これはcom.fasterxml.jackson.databind.ObjectMapperの代わりにorg.codehaus.jackson.map.ObjectMapperを使用しているため、クラスが見つからずコンパイルできなかったようです。 – efan

答えて

2

ジャクソン2.xのパッケージ名がcom.fasterxml1からorg.codehaus2に変更されました。 ObjectMapperだけが必要な場合は、Jackson 1.Xがニーズに合っていると思います。

6

いいえ、単にcom.fasterxml.jackson.databind.ObjectMapperを使用してください。 ほとんどの場合、importの文章を修正するのを忘れてしまい、codehausへの参照をすべて削除すると、あなたは金色になります。

26
<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ポンポンを持っている3「fasterxml」依存関係がObjectMapperのために十分です。

0

これに数時間を費やしました。 username.m2 \ \ユーザーとは別にプロジェクトに

1

を更新:私は右の依存関係を持っていた問題は、私はCの下.m2リポジトリにcom.fasterxml.jacksonフォルダを削除した後にのみ固定された場合であっても

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

IntellijからMaven-> Reimportをやってもうまくいきませんでした。

関連する問題