Tôi sẽ cân nhắc việc cấu trúc lại dịch vụ để trả về đối tượng miền của bạn thay vì các chuỗi JSON và để Spring xử lý việc tuần tự hóa (thông qua MappingJacksonHttpMessageConverter
như bạn viết). Kể từ Spring 3.1, việc triển khai trông khá gọn gàng:
@RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE,
method = RequestMethod.GET
value = "/foo/bar")
@ResponseBody
public Bar fooBar(){
return myService.getBar();
}
Bình luận:
Đầu tiên, <mvc:annotation-driven />
hoặc @EnableWebMvc
phải được thêm vào cấu hình ứng dụng của bạn.
Tiếp theo, thuộc tính sản xuất của @RequestMapping
chú thích được sử dụng để chỉ định loại nội dung của phản hồi. Do đó, nó phải được đặt thành MediaType.APPLICATION_JSON_VALUE (hoặc "application/json"
).
Cuối cùng, Jackson phải được thêm vào để bất kỳ tuần tự hóa và hủy tuần tự hóa nào giữa Java và JSON sẽ được Spring xử lý tự động (sự phụ thuộc Jackson được phát hiện bởi Spring và MappingJacksonHttpMessageConverter
sẽ được kiểm tra).