文章目录

  • JSON
    • 一、什么是JSON
      • 1、创建一个js对象
      • 2、将js对象转换为json对象
      • 3、将json对象转换成js对象
      • test.html
    • 二、Controller返回JSON数据
      • Jackson
      • 1、导入maven
      • 2、配置SpringMVC
      • 3、springmvc-servlet.xml
      • 4、Controller
      • 中文乱码问题:
      • 日期格式的转换
    • 三、Fastjson的使用
      • 1、先引入依赖
      • 2、内置的常用的方法
      • 出现的问题![在这里插入图片描述](https://img-blog.csdnimg.cn/20210607190514808.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ppdV9tdV9tdQ==,size_16,color_FFFFFF,t_70)

JSON

一、什么是JSON

前后端分离时代的产物

后端部署后端,提供接口,提供数据

​ json(数据交换格式)

前端独立部署,负责渲染后端的数据

是一种轻量级的数据交换的格式,独立与编程语言的纯文本格式,是一个字符串,简洁清晰的层次,易于人编写和解读,易于解析和生成,提升传输效率

1、创建一个js对象

// 编写一个javaScript对象
var user = {name: "刘锋",age: 20,sex: "男"
};
console.log(user);

2、将js对象转换为json对象

// 将js对象转换为json对象
var json = JSON.stringify(user);
console.log(json);

3、将json对象转换成js对象

var obj = JSON.parse(json);
console.log(obj);

test.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script type="text/javascript">// 编写一个javaScript对象var user = {name: "刘锋",age: 20,sex: "男"};console.log(user);// 将js对象转换为json对象var json = JSON.stringify(user);console.log(json);// 将json对象转换成js对象var obj = JSON.parse(json);console.log(obj);</script>
</head>
<body></body>
</html>

二、Controller返回JSON数据

Jackson

是一个很好的json解析工具

当然还有其他的工具,比如阿里巴巴的fastjson

这里我们使用的是Jackson,先导入maven的依赖jar包

1、导入maven

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.12.3</version>
</dependency>

2、配置SpringMVC

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!--配置dispatchServlet--><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!--spring配置的乱码过滤器--><filter><filter-name>encoding</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encode</param-name><param-value>utf-8</param-value></init-param></filter><filter-mapping><filter-name>encoding</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>

3、springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><context:component-scan base-package="com.itlf.controller"/><!--资源过滤--><mvc:default-servlet-handler/><mvc:annotation-driven/><!--视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"id="internalResourceViewResolver"><!--前缀--><property name="prefix" value="/WEB-INF/jsp/"/><!--后缀--><property name="suffix" value=".jsp"/></bean><!--<bean name="/controllerTest01" class="com.itlf.controller.ControllerTest01"/>-->
</beans>

4、Controller

@Controller
public class UserController {@ResponseBody // 加了这个注解就不会走视图解析器,就直接会返回一个字符串@RequestMapping("/j1")public  String json1() throws JsonProcessingException {ObjectMapper mapper = new ObjectMapper();// 创建一个对象User user = new User("刘锋1号",20,"男");String string = mapper.writeValueAsString(user);return string;}
}

中文乱码问题:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pt3hXgT1-1623063694210)(C:\Users\刘锋\AppData\Roaming\Typora\typora-user-images\image-20210606203823139.png)]

在springmvc-servlet.xml配置文件里面

<!--json乱码配置-->
<mvc:annotation-driven><mvc:message-converters><bean class="org.springframework.http.converter.StringHttpMessageConverter"><constructor-arg value="UTF-8"/></bean><bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"><property name="objectMapper"><bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"><property name="failOnEmptyBeans" value="false"/></bean></property></bean></mvc:message-converters></mvc:annotation-driven>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aNjaZ2nU-1623063694215)(C:\Users\刘锋\AppData\Roaming\Typora\typora-user-images\image-20210606204645534.png)]

日期格式的转换

@ResponseBody // 加了这个注解就不会走视图解析器,就直接会返回一个字符串
@RequestMapping("/j3")
public  String json3() throws JsonProcessingException {ObjectMapper mapper = new ObjectMapper();// 创建一个日期对象Date date = new Date();// 自定义日期的格式(java)SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");// 使用ObjectMappermapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);mapper.setDateFormat(sdf);String string = mapper.writeValueAsString(date);return string;
}

三、Fastjson的使用

1、先引入依赖

<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.76</version>
</dependency>

2、内置的常用的方法

//        java对象转换json字符串String toJSONString = JSON.toJSONString(userList);
//        json字符串转换java对象JSONObject parseObject = JSON.parseObject(toJSONString);
//        java对象转换json对象JSONObject toJSON = (JSONObject) JSON.toJSON(user1);
//        json对象转换Java对象Object toJavaObject = JSON.toJavaObject(toJSON, User.class);

出现的问题

解决办法:

JSON_刘锋的博客相关推荐

  1. MySQL_DQL数据查询语言_刘锋的博客

    文章目录 DQL数据查询语言 进阶一:基础查询 进阶二:条件查询 进阶三:排序查询 进阶四:常见函数 一.单行函数 二.分组函数(聚合函数) 进阶五.分组查询 进阶六:连接查询(多表查询) sql92 ...

  2. Spring_刘锋的博客

    文章目录 一.Spring 简介 maven配置 优点 组成 拓展 二.IOC理论推导 helloSpring beans.xml Hello.class MyTest.class dao的sprin ...

  3. MySQL_TCL事务控制语言_刘锋的博客

    文章目录 TCL事务控制语言 一.事务的属性(ACIB) 原子性 一致性 隔离性 持久性 二.事务的创建 隐式的事务 显式的事务 三.事务的隔离级别 脏读: 不可重复度: 幻读: 四.delete和t ...

  4. JDBC_刘锋的博客

    文章目录 JDBC 1.JDBC概述 2.获取数据库连接 3.使用preparedstatement实现CRUD操作 增加(Create) 更新(Update) 通用的增删(delete)改 检索(R ...

  5. jsp中Ajax请求发送PUT、DELETE请求的方式_刘锋的博客

    jsp中Ajax请求发送PUT.DELETE请求的方式 方式一 首先配置pom.xml ,添加过滤器 <filter><filter-name>hiddenHttpMethod ...

  6. Lombok_刘锋的博客

    文章目录 概念: 使用: 常用注解: 优点: 缺点: 1. JDK版本问题 2. 胁迫使用 3. 可读性差 4. 代码耦合度增加 概念: Lombok项目是一个Java库,它会自动插入编辑器和构建工具 ...

  7. SpringMVC_刘锋的博客

    文章目录 一. 回顾servlet 创建maven项目 设置pom.xml依赖 创建普通的子项目,添加web框架支持 HelloServlet from.jsp test.jsp 二.初始Spring ...

  8. Maven_刘锋的博客

    文章目录 ANT 概述 功能 安装 种类和之间的关系 本地仓库 远程仓库 中央仓库 设置本地仓库路径 Maven的标准目录结构 Maven常用的命令 Maven生命周期 Maven概念模型图 IDEA ...

  9. MySQL视图_刘锋的博客

    文章目录 视图 创建视图 视图修改 视图的删除 查看视图 视图的更新 对比视图和表 视图 就是一个虚拟的表,有行有列 虚拟表是5.1之后出现的新特性,是通过普通表动态生成的数据,具有临时性的特点. 创 ...

最新文章

  1. kubernetes集群搭建以及遇到的问题
  2. sql和mysql语法_SQL 与MySQL-基本语法介绍
  3. 概率统计笔记:高斯分布的等高线
  4. 第九届蓝桥杯 Java B组 第三题 复数幂 (详解)
  5. PHP对Excel导入导出操作
  6. leetcode-反转整数
  7. 简书UI易用性缺陷:投稿按钮太小
  8. 激光雷达的KPI与技术方案
  9. mysql考勤查询,查询mysql中的考勤表
  10. excel表格坐标导入cad怎样操作?
  11. jdk,j2sdk,j2eesdk,jre 的区别和联系
  12. 碳足迹审核的计算有几种方法?
  13. 漫步者蓝牙耳机连接常见问题
  14. 【MATLAB-app】如何使用键盘回调以及在app设计中应用
  15. python解椭圆方程的例题_《椭圆》方程典型例题20例(含标准答案)
  16. 解决html2canvas图片模糊问题
  17. Jmeter之参数化
  18. qq,tim聊天的人太多,如何找到和自己聊过天的网友
  19. 正点原子ESP8266的使用
  20. 四种代码洁癖类型,程序员看了直呼内行

热门文章

  1. 分支结构,循环结构C语言案例
  2. C语言案例-输出 Fibonacci 数列(斐波那契数列)的前 40 项
  3. 国二、美H、省一、美O:起落落起,我的数模之路
  4. amlogic t972红外遥控功能器及飞鼠模式(附上RK和全志飞鼠模式)
  5. opencv提取并计算轮廓质心
  6. 关于BMA连接器,你想知道的都在这里
  7. 坏了,人脸识别能检测出同性恋?
  8. Photon OS介绍及网络配置
  9. python下载ts并合并为MP4文件
  10. 静态变量存储在哪个区