如何处理Controller传来的json是个更好的选择呢?

来源:8-12 IP获取工具类,发送邮件工具类的引入和代码优化

TinyLeon

2018-09-02

老师好:

    我最近在看老师的并发编程课程,感觉讲的很好。真希望能变成老师这样的大牛。

    我最近有个疑问,我们的项目是前后端分离的项目,通过RESTful接口通信。我看大家的代码,在处理前端传来的json报文上,处理的方式不太统一。

    有的人,比如我,习惯先创建一个pojo类,然后通过@RequestBody将这个json映射到类里面。

    有些人就不会创建这个类,而是将json以字符串的形式接收,然后用开源的json处理工具一个个json节点的来处理请求参数。他们这种方式下,还有些人是用fastjson,有的人用Jackson,有的人用gson。

    我想咨询下老师,老师喜欢哪种方式呢,哪种方式更优雅,效率更高,老师最推荐呢?

    谢谢老师!

写回答

2回答

Jimin

2018-09-02

你好,感谢你的赞美,你的问题也不比较有意思。说一下我在这方面的一点理解吧。

首先从安全性来讲,@RequestBody这个更好一些,放在body里传输更安全一些,这个相比@RequestParam Post提交也更好一些。

接下来说json转换,我们更习惯使用jackson,转换比较稳定一些,当然其他json也有自己的好处,本质上可以看看他们的对比,不同的json转换都有自己的一些优势,可根据实际场景选择。但不是很推荐传入json string,再转换成一个类的方式,这完全可以使用@RequestParam + 普通model的形式接收,代码看起来也更容易理解,而且也不至于出现json拼接出错的可能。

最后说一下他们实际的选择。其实这个没明确的要求,以组内规范为主。忽略其他,我更推荐的是:涉及更新时使用Post + @RequestBody的形式,普通查询时使用Get + @RequestParam的形式,但不强制。

0
1
TinyLeon
非常感谢!
2018-09-02
共1条回复

Jimin

2018-09-02

另外,强烈建议,你们组内能定义一个接收参数的规范,这样更适合团队协作。

0
0

Java开发企业级权限管理系统

源于企业真实Java项目,涉及大量高级技巧,覆盖权限管理开发技术

2260 学习 · 1347 问题

查看课程