前端、后端如何使用JSON进行交互
一、认识JSON
1.1 JSON介绍
- JSON为一个字符串,是前后端分离的重要工具
- 前后端都可以正确解析JSON,所有前后端交流可以通过JSON来实现
1.2 前端对JSON的操作
- 解析JSON:
JSON.parse(JSON json)
方法 - 封装JSON:
JSON.stringify(Object object)
方法
- 创建一个html来演示
1 |
|
- 控制台打印结果
二、Jackson使用
2.1 导入第三方jar包
jackson-databind-xx.xx.xx.jar
- 下载地址:https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind
- 选择对应的版本,进入页面在上面表格寻找
|File| bundle(x.xMB)|
,点击bundle即可下载
- maven:
1
2
3
4
5<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.0</version>
</dependency>
2.2 后端发送JSON步骤
- (1)在controller接口实现类,在请求映射方法添加新注解
@ResponseBody
,让方法不会被视图解析器识别 - (2)或者直接在来上添加
@RestController
来使类中所有方法都不会被视图解析器识别 - (3)方法中创建一个
ObjectMapper
对象,通过writeValueAsString()
方法转变成JSON字符串 - (4)return JSON字符串来对前端发送数据
1 |
|
2.3 乱码解决
- (1)原生态解决方法
- 在请求映射注解添加额外参数
produce
- 在请求映射注解添加额外参数
1 |
|
- (2)在spring配置文件中进行设置
1 | <!--解决后端向前端传递数据乱码问题--> |
2.4 返回多个对象的JSON
- 方法没变,Jackson的
writeValueAsString()
支持集合
1 | //返回多个对象的JSON |
2.5 返回时间
- (1)使用
SimpleDateFormat
来对时间戳进行格式化
1 |
|
- (2)利用
ObjectMapper
来格式化时间
1 |
|
三、FastJson使用
- fastjson是阿里开发的一款专门用于Java开发的包
3.1 导入第三方jar包
- fastjson-xx.xx.xx.jar
- 下载地址:https://mvnrepository.com/artifact/com.alibaba/fastjson
- 选择相应的版,进入页面,在上面的表格的
Files
中,点击jar
进行下载
- Maven
1 | <dependency> |
3.2 fastjson三个主要类
- (1)JSONObject:代表Json对象
- (2)JSONArray:代表json对象数组
- (3)JSON:JSONObject和JSONArray转化
3.3 常用方法(静态方法)
- (1)Java对象 转变成 JSON字符串
JSON.toJSONString(Object object)
- (2)JSON字符串 转变成 Java对象
JSON.parseObject(String json)
- (3)Java对象 转变成 JSON对象
JSON.toJSON(Object object)
- (4)JSON对象 转变成 Java对象
JSON.toJavaObject(JSON json, Class<T> clazz)
- 参数一:JSON对象,参数二:要转化成的Java对象