Sử dụng jersey jersey.java.net Làm cách nào để đặt JSON làm serialization mặc định thay vì XML khi không có hậu tố header hoặc .xml chấp nhận trong URI?Làm cách nào để đặt mặc định thành json thay vì xml bằng áo?
Trả lời
Bạn có thể chỉ định chỉ mục chất lượng cho từng loại phương tiện trong chú thích @Produces. I.e.you thể làm như sau để làm Jersey thích JSON nếu cả hai XML và JSON được phép:
@Produces({"application/json;qs=1", "application/xml;qs=.5"})
Bạn sẽ có thể thiết lập các @Produces
chú thích để xác định định dạng lại như vậy:
@Produces({ "application/json" })
Tại sao không có chấp nhận tiêu đề?
Điều này sẽ dẫn đến lỗi 406 bất cứ khi nào yêu cầu XML. OP muốn có thể trả về XML và JSON, nhưng mặc định là JSON nếu không được yêu cầu. – idontevenseethecode
bạn có nghĩa là @Consumes ({"application/json"}) –
Bạn có thể chỉ định ưu tiên của thế hệ bằng cách xác định loại phương tiện truyền thông để bạn ưu tiên trong chú thích @Produces.
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
Trong mã ở trên vì "ứng dụng/json" xuất hiện trước, nếu không có tiêu đề chấp nhận được chỉ định trong yêu cầu, Jersey sẽ mặc định tạo phản hồi JSON.
Sử dụng qs (theo đề xuất của Martin) làm cho tùy chọn rõ ràng hơn, nhưng hơi phức tạp hơn một chút để hiểu.
Điều này có vẻ không hoạt động trong phiên bản hiện tại. Tôi không thể nói cho các phiên bản cũ của Jersey. Không có tiêu đề 'accept', ngay cả khi JSON là đầu tiên trong danh sách Produces, vẫn trả về XML. Có thể có cái gì khác mà ảnh hưởng đến điều này bên cạnh phiên bản của Jersey? – FredArters
Đây chỉ là thông tin không chính xác. Thứ tự của các loại phương tiện trong chú thích Produces hoàn toàn không ảnh hưởng đến phản hồi mặc định. – Michael
Vâng, Oracle cho biết thứ tự có liên quan: https://docs.oracle.com/cd/E19798-01/821-1841/6nmq2cp2c/index.html Nhưng tôi nghĩ nó thực sự phụ thuộc vào việc triển khai – Gui13
- 1. Làm cách nào để xác định bean Spring bằng chú thích thay vì XML?
- 2. ASMX webservice - trở JSON thay vì XML
- 3. làm cách nào để tạo trang chủ mặc định home.php thay vì index.html và index.php
- 4. Làm thế nào để đặt Spinner Mặc định bằng Giá trị của nó thay vì Vị trí?
- 5. ASP.NET web api trả về XML thay vì JSON
- 6. Làm cách nào để biến JDK thành JRE mặc định?
- 7. Làm thế nào để chạy selenium dưa chuột bằng cách sử dụng máy chủ Thin thay vì Webrick mặc định?
- 8. Làm cách nào để đặt cổng mặc định cho Webrick?
- 9. Tạo một WebService ASP.net trả về JSON thay vì XML
- 10. Làm thế nào để tôi mặc định Visual Studio để C# dự án thay vì VB.NET?
- 11. Cách đặt giá trị mặc định của chuỗi trống TextBox thay vì null
- 12. Làm cách nào để đặt trạng thái hộp kiểm mặc định bằng javascript?
- 13. Làm cách nào để đặt giá trị mặc định của hộp nhập liệu bằng jQuery?
- 14. Làm cách nào để đặt giá trị mặc định bằng Getopt :: Std?
- 15. Làm cách nào để thay đổi vị trí mặc định cho cài đặt NPM trên Windows?
- 16. Sử dụng Mercurial, làm cách nào để thay đổi từ mặc định thành chi nhánh được đặt tên?
- 17. Làm cách nào để đặt jvm args mặc định thành plugin ứng dụng gradle?
- 18. cách đặt ruby mặc định bằng rvm
- 19. Làm thế nào để chuyển đổi XML (SOAP) thành đối tượng JSON bằng JavaScript
- 20. Làm cách nào để đặt nút mặc định trong PyGTK?
- 21. Đặt lại IntelliJ UI thành Mặc định
- 22. Làm cách nào để đặt chiều cao khoảng trống bằng chiều cao dòng mặc định?
- 23. Làm cách nào để đặt chế độ bash/zsh mặc định thành chế độ lệnh vi thay vì chế độ chèn vi?
- 24. Làm cách nào để đặt trình duyệt mặc định trong windows 8 bằng C#?
- 25. Làm cách nào để đặt giá trị mặc định thành chuỗi trống cho cột TEXT?
- 26. Làm cách nào để đặt các tham số mặc định thành jvm?
- 27. Làm cách nào để đặt phiên bản mặc định của Python thành 3.3 trên OS X?
- 28. JasperReports: giá trị mặc định thay vì 'null'
- 29. Làm cách nào để đặt giá trị cho tùy chọn mặc định bằng Html.DropDownList
- 30. Làm thế nào để thay đổi Select2 thẻ mới mặc định chính "tab" thành "không gian"?
Vì vậy, với phương pháp web có khả năng sản xuất hai loại phương tiện, người yêu cầu xác định cái nào nó muốn? Nó được thực hiện thông qua một param truy vấn? Làm sao? –
Sử dụng tiêu đề Yêu cầu chấp nhận. (http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#z3) –
Phát ngay. Cảm ơn! – FredArters