SpringMVC使用@RestController註解返回Json的處理方式

引入:

       前端頁面請求一般需要後端返回相應的json數據,以往使用@Controller時一般都是使用視圖解析器直接進行頁面跳轉,而如果有需求需要Controller直接返回json數據格式時,一般使用@RestController註解控制器,它的作用相當於@ResponseBody+@@Controller,意思是直接返回數據。但是SpringMVC不能直接使用@RestController返回一個列表數據時,它不會自動給你轉換json,會報錯(直接返回一個字符串可以)

  • 後端代碼:
@RestController
public class TestController {

    @Autowired
    private UserService userService;

    @GetMapping("/test")
    public List<User> test(){

        return userService.findAll();
    }
}
  • 測試結果: 

解決:

     由上面的錯誤提示可以看到,@RestController返回一個列表數據需要一個轉換器,這裏使用的是一個jackson的解析包,它可以對@RestController返回的數據列表解析成json數據格式。其實並不限定使用這個解析包,還有其他的解決方法,如果有知道的小夥伴,在留言區交流下

<dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.5</version>
    </dependency>

注意:如果你加了上面的依賴返回數據仍然報一下錯誤

java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/exc/InvalidDefinitionException

則表明你的spring和jackson相關版本不兼容

我使用的是Spring5.0.2版本,所以需要使用是高版本的jsckson

如果你使用的是Spring4則需要更換jackson版本嘗試,一般爲2.7.5或更高版本試試

  • 驗證:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章