Не удается работать с Джексоном

Мне интересно, почему нет определенного способа работы с Jackson. Я просто хочу проанализировать строку JSON:

ObjectMapper mapper = new ObjectMapper();
Customer[] myObjects = mapper.readValue(file, Customer[].class);

Но я действительно смутил то, что мне следует импортировать для этого. В соответствии с этой ссылкой , я попытался импортировать 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. Благодаря

Ответ 1

используйте эти зависимости jackson-databind
jackson-annotations
jackson-core

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);
    }    
}

Попробуйте и дайте мне знать, если он работает.

Ответ 2

Похоже на замешанные ссылки.

Возможно, вы используете библиотеку, в которой используется старая версия самого Джексона (т.е. пакет org.codehaus)...

Обычно я просто обращаюсь к Джексону через Maven.

Что-то вроде:

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