Jackson
を使用する明確な方法がないのはなぜかと思っています。 JSON
文字列を解析したいだけです。
ObjectMapper mapper = new ObjectMapper();
Customer[] myObjects = mapper.readValue(file, Customer[].class);
しかし、私はそれを行うために何をインポートする必要があるかを本当に混乱させました。これによると link 、私はmapper-asl.jar
。しかし、私はこのコンパイルエラーが発生します:
The type org.codehaus.jackson.JsonParser cannot be resolved. It is indirectly referenced from required .class files
次に、インポートしようとしますjackson-core-2.4.2
およびjackson-databind-2.4.2
。そのため、コンパイルエラーはありませんでしたが、代わりにこのランタイム例外が発生しました(マッパー定義行で)。
Java.lang.NoClassDefFoundError: com.fasterxml.jackson.annotation.JsonAutoDetect
Jackson
を操作するためにインポートするものを教えてください。ありがとう
これらの依存関係を使用します jackson-databind
jackson-annotations
ジャクソンコア
public class JsonTest {
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper mapper=new ObjectMapper();
Map<String,String> dt=new Hashtable();
dt.put("1", "welcome");
dt.put("2", "bye");
String jsonString = mapper.writeValueAsString(dt)
System.out.println(jsonString);
}
}
混乱した参照のように見えます。
ジャクソン自体の古いバージョンを使用するライブラリを使用している可能性があります(つまり、org.codehaus
パッケージ)...
私は通常、Mavenを通じてJacksonを参照しています。
何かのようなもの:
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>LATEST</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>LATEST</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>LATEST</version>
</dependency>
</dependencies>