首頁>技術>

springmvc返回json

現在很多專案已經前後端分離了,不再使用jsp或者使用jsp但是資料使用ajax來獲取,實現區域性重新整理的效果,那麼springmvc中如何不返回頁面而返回頁面所需要的資料呢。

前後端資料互動現在大多使用json來表示(當然有一部分還是使用xml的),那如何在springmvc中返回json資料呢。

返回json依賴
<dependency>  <groupId>com.fasterxml.jackson.core</groupId>  <artifactId>jackson-databind</artifactId>  <version>2.11.3</version></dependency>
介面層面的改動

在controller返回時不再返回ModelAndView,而是返回具體的資料物件,在方法上新增@ResponseBody註解

@ResponseBody@RequestMapping("/testJson")public User testJson(){    User user = new User();    user.setName("張三");    user.setId(2);    return user;}
Why?

為什麼只是加了一個依賴,加一個註解就可以完成返回json資料呢。

這裡用到了一個介面,HttpMessageConverter介面,該介面可以將請求資訊轉為所對應的入參,將返回結果轉為對應型別的響應資訊

public interface HttpMessageConverter<T> {    boolean canRead(Class<?> var1, MediaType var2);    boolean canWrite(Class<?> var1, MediaType var2);    List<MediaType> getSupportedMediaTypes();    T read(Class<? extends T> var1, HttpInputMessage var2) throws IOException, HttpMessageNotReadableException;    void write(T var1, MediaType var2, HttpOutputMessage var3) throws IOException, HttpMessageNotWritableException;}

spring提供了兩種方式

使用@RequestBody或@ResponseBody對處理的方法進行處理使用HttpEntity/ResponseEntity作為方法的入參或返回值

10
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 深入探究,String字串效能最佳化,原來還可以這樣