在Web應用程序開發中,Controller是一個關鍵的組件,用于處理請求并返回響應。隨著越來越多的Web應用程序通過API的方式提供數據服務,Controller也要支持返回JSON格式的響應。
在Spring框架中,Controller通常使用@RequestMapping注解來映射請求,并使用@ResponseBody注解將返回的對象轉換成JSON格式的響應。以下是一個簡單的例子:
@RequestMapping("/user/{id}") @ResponseBody public User getUser(@PathVariable int id) { // 從數據庫或其他數據源查詢用戶信息 User user = new User(); user.setId(id); user.setName("John Doe"); return user; }
在這個例子中,當請求"/user/1"時,Controller會返回一個具有id和name屬性的JSON對象,如下所示:
{ "id": 1, "name": "John Doe" }
當Controller返回一個JSON對象時,Spring會自動使用Jackson庫來轉換對象為JSON格式的響應。如果需要返回一個JSON數組,可以將返回值改為List或數組類型:
@RequestMapping("/users") @ResponseBody public ListgetUsers() { // 從數據庫或其他數據源查詢用戶列表 List users = new ArrayList<>(); User user1 = new User(); user1.setId(1); user1.setName("John Doe"); User user2 = new User(); user2.setId(2); user2.setName("Jane Smith"); users.add(user1); users.add(user2); return users; }
當請求"/users"時,Controller會返回一個包含兩個用戶的JSON數組,如下所示:
[ { "id": 1, "name": "John Doe" }, { "id": 2, "name": "Jane Smith" } ]
在使用Controller返回JSON響應時,需要注意返回的對象屬性必須是有效的JSON類型,例如String、Number、Boolean、Array或Object類型。同時,也可以使用@JsonFormat注解來定義日期、時間和數字類型的格式。