2014-09-20 15 views
13

Tôi tự hỏi tại sao không có cách xác định để làm việc với Jackson. Tôi chỉ muốn phân tích cú pháp JSON chuỗi:Không thể làm việc với Jackson

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

Nhưng tôi thực sự nhầm lẫn những gì tôi nên nhập để làm điều đó. Theo điều này link, tôi đã cố gắng nhập mapper-asl.jar. Nhưng tôi nhận được lỗi biên dịch này:

The type org.codehaus.jackson.JsonParser cannot be resolved. It is indirectly referenced from required .class files 

Sau đó, tôi cố gắng nhập jackson-core-2.4.2jackson-databind-2.4.2. Vì vậy, không có lỗi biên dịch nhưng tôi có ngoại lệ thời gian chạy này thay vì (theo định nghĩa mapper):

java.lang.NoClassDefFoundError: com.fasterxml.jackson.annotation.JsonAutoDetect 

Hướng dẫn cho tôi xin những gì tôi cần nhập khẩu để làm việc với Jackson. Cảm ơn

+0

Khi những người khác chỉ ra, bạn có một số phiên bản trộn: 'org.codehaus.jackson' là dành cho Jackson 1.x và' com.fasterxml.jackson' cho 2.x. Và cái gì khác bạn có là tùy thuộc vào Jackson 1.x (có lẽ 1,9, Hadoop, DropWizard hoặc Jersey có thể?) – StaxMan

+0

Không có vấn đề được giải quyết. Tôi chỉ cần thêm thư viện 'jackson-annotation'. Cảm ơn. –

+0

Ok tốt, vui vì nó đã được giải quyết! – StaxMan

Trả lời

14

sử dụng những phụ thuộc 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); 
    }  
} 

Hãy thử và cho tôi biết nếu nó hoạt động.

+2

Nó hoạt động ngay sau khi tôi thêm chú thích jackson. Cảm ơn –

+1

Cảm ơn, tôi vừa thêm jackson-databind làm phụ thuộc maven và các dự án của tôi hoạt động. Chúc mừng – netto

+1

cảm ơn công việc cho tôi sau khi thêm phụ thuộc jackson –

2

Dường như tham chiếu hỗn hợp.

Bạn có thể sử dụng một thư viện có sử dụng một phiên bản cũ của chính nó Jackson (ví dụ: gói org.codehaus) ...

Tôi thường chỉ cần tham khảo Jackson qua Maven.

Cái gì như:

<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> 
Các vấn đề liên quan