定制网站JSON数据传输参数

概述

定制网站前面我们说过,定制网站现在比较流行的开发方式为。定制网站前后台以异步方式进行交换,定制网站传输的数据使用的是JSON,定制网站所以前端如果发送的是JSON数据,定制网站后端该如何接收?

对于JSON数据类型,定制网站我们常见的有三种:

  • json普通数组([“value1”,“value2”,“value3”,…])
  • json对象({key1:value1,key2:value2,…})
  • json对象数组([{key1:value1,…},{key2:value2,…}])

定制网站对于上述数据,前端如何发送,后端如何接收?

JSON普通数组

步骤1:pom.xml添加依赖

<dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-databind</artifactId>    <version>2.9.0</version></dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

步骤2:PostMan发送JSON数据

步骤3:开启SpringMVC注解支持
在SpringMVC的配置类中开启SpringMVC的注解支持,这里面就包含了将JSON转换成对象的功能。

@Configuration@ComponentScan("com.itheima.controller")//开启json数据类型自动转换@EnableWebMvcpublic class SpringMvcConfig {}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

步骤4:参数前添加@RequestBody

//使用@RequestBody注解将外部传递的json数组数据映射到形参的集合对象中作为数据@RequestMapping("/listParamForJson")@ResponseBodypublic String listParamForJson(@RequestBody List<String> likes){    System.out.println("list common(json)参数传递 list ==> "+likes);    return "{'module':'list common for json param'}";}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

步骤5:启动运行程序

JSON普通数组的数据就已经传递完成,下面针对JSON对象数据和JSON对象数组的数据该如何传递呢?

JSON对象数据

我们会发现,只需要关注请求和数据如何发送?后端数据如何接收?

请求和数据的发送:

{	"name":"itcast",	"age":15}
  • 1
  • 2
  • 3
  • 4


后端接收数据:

@RequestMapping("/pojoParamForJson")@ResponseBodypublic String pojoParamForJson(@RequestBody User user){    System.out.println("pojo(json)参数传递 user ==> "+user);    return "{'module':'pojo for json param'}";}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

启动程序访问测试

说明:

address为null的原因是前端没有传递数据给后端。

如果想要address也有数据,我们需求修改前端传递的数据内容:

{	"name":"itcast",	"age":15,    "address":{        "province":"beijing",        "city":"beijing"    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

再次发送请求,就能看到address中的数据

JSON对象数组

集合中保存多个POJO该如何实现?

请求和数据的发送:

[    {"name":"itcast","age":15},    {"name":"itheima","age":12}]
  • 1
  • 2
  • 3
  • 4


后端接收数据:

@RequestMapping("/listPojoParamForJson")@ResponseBodypublic String listPojoParamForJson(@RequestBody List<User> list){    System.out.println("list pojo(json)参数传递 list ==> "+list);    return "{'module':'list pojo for json param'}";}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

启动程序访问测试:

小结

SpringMVC接收JSON数据的实现步骤为:

(1)导入jackson包

(2)使用发送JSON数据

(3)开启SpringMVC注解驱动,在配置类上添加@EnableWebMvc注解

(4)Controller方法的参数前添加@注解

知识点1:@EnableWebMvc

名称@EnableWebMvc
类型配置类注解
位置SpringMVC配置类定义上方
作用开启SpringMVC多项辅助功能

知识点2:@RequestBody

名称@RequestBody
类型形参注解
位置SpringMVC控制器方法形参定义前面
作用将请求中请求体所包含的数据传递给请求参数,此注解一个处理器方法只能使用一次

@RequestBody与@RequestParam区别

  • 区别

    • @RequestParam用于接收url地址传参,表单传参【application/x-www-form-urlencoded】
    • @RequestBody用于接收json数据【application/json】
  • 应用

    • 后期开发中,发送json格式数据为主,@RequestBody应用较广
    • 如果发送非json格式数据,选用@RequestParam接收请求参数
网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发