java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot接收前端传来的json数据

SpringBoot如何接收前端传来的json数据

作者:IT__learning

这篇文章主要介绍了SpringBoot如何接收前端传来的json数据问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

SpringBoot接收前端传来的json数据

当前端传来json数据时,后端有两种方式可以接收:使用POJO和Map进行接收。

前端json数据:

{
    id:121,      //数字
    name:"lhj",     //字符串
    scoreList:[     //对象
                {Java:95},  
                {Python:98},
                {C++:94}
                ]
        }

使用POJO

若前端传递过来的数据刚好和我们的bean实体对象属性一致,则可以使用对象的形式接收。

后端实体类

@Component
public class Score {
    private int id;
    private String name;
    private List<ScoreList> scoreList;
}

后端Controller

@PostMapping("/student/score")
public void getScore(@RequestBody Score score){
    System.out.println(score);
    }

使用Map接收

若前端传递过来的数据很复杂,没有对应的POJO与其对应,就可以用Map进行接收。

后台Controller

@PostMapping("/lhj/getdata")
public void getData(@RequestBody Map<String,Object>map){
    System.out.println(map);
    }

对于Map<String,Object>,值的类型建议设置为Object,这样可以使Map能接收各种类型的数据,如字符串、数字、数组和对象等。

使用POJO和Map接收的比较

1、map的优点:

2、map的缺点

3、JavaBean的优点:

4、javabean的缺点:

PO和VO相结合

SpringBoot接收json入参

最近做一个项目,给前端vue工程提供数据接口,部门经理希望通过json格式来传递参数。

接口项目是用的springboot,所以直接使用controller里配置的path就能访问到对应的方法

示例如下:

vue调用的方法如下,可见我们传了2个参数,一个configid,一个configname

//通过json传参
var url=“http://localhost/jsonparam”;
var sendData={“configid”:55,
“configname”:“000”
};
this.$http.jsonp(url,{params : sendData}).then(function (res) {
this.msg=res.data.configName;
});

服务接口端代码:

controller方法中,入参前加@RequestParam 注解 ,value和前端传的json字段对应上

@RequestMapping(value="/jsonparam", method = RequestMethod.GET,produces="application/json;charset=UTF-8")
public   ConfigVo getjsonpparam(@RequestParam(value="configid",required=true)  Long id,@RequestParam(value="configname",required=true) String name) {
    ConfigVo vo = service.getConfigById(id);   
    return vo;
}

这样使用,就能接收前台传来的json参数。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文