在前后端分離的開發(fā)模式中,后端很多時候需要返回JSON對象給前端進行處理和展示。在SpringMVC中,Controller的返回值可以是一個對象或者一個Map,它會根據(jù)請求頭中的Accept參數(shù)來判斷返回JSON對象還是視圖頁面。如果請求頭中包含了application/json類型,那么它會根據(jù)返回值類型將對象轉化為JSON串,然后返回給前端。
@GetMapping("/user") public Map<String, Object> getUser(){ Map<String, Object> user = new HashMap<>(); user.put("name", "張三"); user.put("age", 18); return user; }
在上面的示例代碼中,我們返回了一個Map對象給前端,它將被轉化為JSON對象返回。在SpringMVC中,我們無需手動將對象轉化為JSON串,它會自動幫我們完成這個過程。如果你想要指定自己的JSON轉化規(guī)則,可以使用Jackson庫進行配置。
@Configuration public class WebMvcConfig extends WebMvcConfigurerAdapter { @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); ObjectMapper objectMapper = new ObjectMapper(); //設置日期格式 objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); converter.setObjectMapper(objectMapper); converters.add(converter); } }
在這個配置中,我們自定義了一個Jackson的轉化器,指定了日期格式等配置,然后將它添加到了Spring的消息轉化器列表中。這樣,在Controller返回JSON對象時,就會使用我們自定義的規(guī)則進行轉化了。
總之,在SpringMVC中,返回JSON對象非常簡單,我們無需手動將對象轉化為JSON串,只需要保證Controller的返回值是一個對象或者Map即可。如果需要自定義JSON轉化規(guī)則,可以使用Jackson庫進行配置。這樣,我們就可以很方便地讓后端返回JSON對象給前端了。