2011-08-30 39 views
11

Jersey khuôn khổ sử dụng cả hai thư viện JacksonJettison để JSON unmarshalling/marshalling. AFAIK, Jettison là để lập bản đồ JSON thành XML (với sự hỗ trợ cơ chế khác nhau như ký pháp ánh xạ) và Jackson là để tạo/phân tích cú pháp JSON (tôi đang sử dụng nó mà không có Jersey).Việc sử dụng Jackson & Jettison trong Jersey

Jersey có sử dụng hai tính năng này cho hai chức năng khác nhau hoặc cả hai cho cùng một chức năng tạo/phân tích cú pháp JSON?

Tôi chỉ muốn hỗ trợ định dạng JSON. Theo suy nghĩ đầu tiên của tôi, có vẻ như tôi có thể loại bỏ một trong các phụ thuộc và tôi nghĩ rằng tôi có thể loại bỏ Jettison vì Jacksone có vẻ là sự lựa chọn tự nhiên hơn cho việc tạo/phân tích cú pháp JSON.

Trả lời

7

Jersey sẽ sử dụng một hoặc cái kia, không phải cả hai, cho tất cả xử lý JSON. Đề nghị theo như tôi biết là sử dụng Jackson; Sự hỗ trợ của nhà tù lớn hơn và được thực hiện trước khi Jackson trở nên có sẵn. Jettison vẫn được hỗ trợ vì lý do tương thích nhưng trừ khi một số mã dựa vào cấu trúc chính xác mà nó tạo ra (khác với ánh xạ thẳng về phía trước) có rất ít lợi ích khi sử dụng nó.

+0

Cảm ơn. Nhưng tôi thấy Jettison là phụ thuộc (tôi đang sử dụng Maven), mặc dù tôi đang sử dụng ánh xạ thông thường/thẳng về phía trước? – manikanta

+0

Vâng, nếu một cái gì đó khác cần nó (hoặc trong thời gian chạy hoặc có thể chỉ để biên dịch, như là trường hợp cho Jersey tôi nghĩ), nó cần phải được bao gồm. Nhưng cho dù nó được sử dụng là cấu hình với Jersey, và không có hại trong việc bao gồm nó. – StaxMan

+6

Tôi không đồng ý với thuật ngữ "Không có hại trong việc bao gồm nó". Biết những gì được sử dụng cho những gì là quan trọng. Maven đang làm cho các nhà phát triển lười biếng và các dự án cồng kềnh. –

1

Tôi đồng ý, sử dụng Jackson hoặc thậm chí GSON từ google. Jettison có quá nhiều hạn chế và hiệu suất cũng thấp hơn.

Các vấn đề liên quan