Chúng tôi có toàn bộ các dịch vụ REST JAX-RS chạy trên Apache CXF và Jackson. Chúng tôi sử dụng chú thích JAXB để xử lý các bản tóm tắt POJO thành JSON, hoạt động tốt.Làm cách nào để chuyển JSON thô qua Jackson?
Tuy nhiên, chúng tôi có một hoặc hai vị trí mà chúng tôi muốn trả về chuỗi JSON thô (mà chúng tôi tìm nạp từ bộ nhớ cache Redis).
Jackson luôn bao bọc chuỗi trong dấu ngoặc kép và thoát tất cả dấu ngoặc kép trong đó, ví dụ:
@GET @Produces("application/json")
public Response getData() {
String json = ...get from Redis...
return Response.ok(json,"application/json").build()
}
cho chúng ta
"{\"test\":1}"
thay vì
{"test":1}
Tôi đã thử nhiều thứ, thêm RawSerializer (String.class) để mapper Object, không có gì làm việc. Điều duy nhất mà làm việc là nếu tôi đặt loại phương tiện để chuỗi đơn giản, mà bỏ qua Jackson, nhưng là không tốt, vì tôi đang trở về kiểu nội dung sai
tức
return Response.ok(json,"text/plain").build()
công trình, nhưng kém (loại nội dung sai, mà vít lên. Net WCF ứng dụng gọi cho chúng tôi)
Tôi đã phải sử dụng Bản đồ thay thế và để Jersey phân tích cú pháp chính xác ... Tôi đã thêm JacksonJsonProvider với mapper.setVisibility (PropertyAccessor.FIELD, Visibility.ANY); –