电商商城定制开发Spring MVC基于注解的使用:JSON数据处理

目录

1.JSON数据交互

1.1 JSON概述

JSON 电商商城定制开发是一种轻量级的数据交换格式,电商商城定制开发是一种理想的数据交互语言,电商商城定制开发它易于阅读和编写,电商商城定制开发同时也易于机器解析和生成。
JSON有两种数据结构:

  • 对象结构
  • 数组结构

1.1.1 对象结构

对象结构是由花括号括起来的逗号分割的键值对(key:value)构成。

对象结构的语法格式是:
{ "key1 ":"value 1", "key2 ":"value 2", "key3 ":"value 3"}

注意:

  • key 必须是字符串,value 可以是字符串, 数字, 对象, 数组, 布尔值或 null。
  • key 和 value 中使用冒号(:)分割。
  • 每个 key/value 对使用逗号(,)分割。

1.1.2 数组结构

数组结构是由中括号包裹逗号分隔的值的列表组成。

数组结构的语法格式是:
[ "value1","value2","value3" ]

注意:JSON 中数组值必须是字符串, 数字, 对象, 数组, 布尔值或 null。

java转换为json 的过程一般会称为 “序列化”
json转换为java 的过程一般会称为 “反序列化”
json的属和字符串值必须要用双引号 “” 不能用单引

1.2 JSON

为实现浏览器与控制器类之间的数据交互,Spring提供了一个HttpMessageConverter接口来实现该工作。Spring为HttpMessageConverter接口提供了很多实现类,来对不同类型的数据进行信息转换。而Spring MVC 默认处理JSON格式请求响应的实现类是MappingJackson2HttpMessageConverter,使用此类对数据进行转换。

数据转换操作步骤:

  1. 导入jackson依赖
<dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-databind</artifactId>    <version>2.13.2.2</version></dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  1. 在SpringMVC的核心配置文件中开启mvc的注解驱动,此时在HandlerAdaptor中会自动装配一个消息转换器:MappingJackson2HttpMessageConverter,可以将响应到浏览器的Java对象转换为Json格式的字符串
<mvc:annotation-driven/><mvc:default-servlet-handler/>
  • 1
  • 2
  1. 创建一个User类,用于封装User类型的请求参数
public class User {    private Integer id;    private String username;    private String password;    public User() {    }    public User(Integer id, String username, String password) {        this.id = id;        this.username = username;        this.password = password;    }    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  1. 在控制器方法上使用@ResponseBody注解进行标识
@RequestMapping("/testJson")@ResponseBodypublic User testJson(){    return new User(001,"jack","123456");}
  • 1
  • 2
  • 3
  • 4
  • 5
  1. 将Java对象直接作为控制器方法的返回值返回,就会自动转换为json格式的字符串

2. HttpMessageConverter

HttpMessageConverter,报文信息转换器,将请求报文转换为Java对象,或将Java对象转换为响应报文。
HttpMessageConverter提供了两个注解@RequestBody和@,在JSON格式转换中也是非常重要的。

2.1 @RequestBody

@RequestBody 可以获取,需要在控制器方法设置一个形参,使用@RequestBody进行标识,就会将请求体中的数据绑定到方法的形参中。

 @RequestMapping("/testRequestBody")    public String testRequestBody(@RequestBody String requestBody){        System.out.println("requestBody:" + requestBody);        return "success";    }
  • 1
  • 2
  • 3
  • 4
  • 5

表单提交:

<form action="${pageContext.request.contextPath}/testRequestBody" method="post">    用户名:<input type="text" name="username"><br>    密码:<input type="password" name="password"><br>    <input type="submit" value="测试"><br></form>
  • 1
  • 2
  • 3
  • 4
  • 5

返回结果:requestBody:username=abc&password=123

2.2 @ResponseBody

@ResponseBody 标识当前的控制器方法,直接将该方法的返回值作为响应报文的响应体响应到浏览器

@RequestMapping("/testResponseBody")    @ResponseBody    public String testResponseBody(){        return "success";    }
  • 1
  • 2
  • 3
  • 4
  • 5

通过超链接测试:
<a href="${pageContext.request.contextPath}/testResponseBody">测试testResponseBody</a>

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发