SSM整合Json(Jackson)

  1. 在pom.xml中导入相关Json依赖,
    这里由于自己配置的Spring版本不同会出现jar冲突,运行可能报错,本人使用的Spring版本是5.1.x,导入jar包如下:
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.8</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.8</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.9.8</version></dependency>

这里导入的都是使用最多的版本(可以自己找所有版本的jar包)

  1. 报错(java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonProcessingException或者类似错误)
    (1). 这里由于版本问题会出现报错,以上版本本人亲测可用.
    (2). 出现这种错误还有一种可能,下载的jar包没有导入到环境中.可以这样解决:

  2. 测试一下Jackson
    这里自己写一个实体类和控制类测试一下:

    Books类(这里Getter和Setter是使用Lombok自动生成的)

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Books {private int bookID;private String bookName;private int bookCounts;private String detail;
}

JsonController类

@RestController
public class JsonController {@RequestMapping(value = "/json1",produces ="application/json;charset=utf-8")public String json1() throws JsonProcessingException {// 创建一个Jackson的对象映射器,用来解数据ObjectMapper objectMapper = new ObjectMapper();//创建实体对象Books books = new Books(3,"java",600,"我爱爪洼");//将对象解析成为json格式String s = objectMapper.writeValueAsString(books);return s;}@RequestMapping("/json2")public String json() throws JsonProcessingException{//创建一个Jackson的对象映射器,用来解析数据ObjectMapper objectMapper = new ObjectMapper();//创建实体对象的集合List<Books> list = new ArrayList<Books>();list.add(new Books(3,"java",600,"我爱爪洼"));list.add(new Books(4,"java4",500,"我不爱爪洼"));list.add(new Books(5,"java5",700,"我很爱爪洼"));//同样进行解析String str = objectMapper.writeValueAsString(list);return str;}@RequestMapping("/json3")public String json3() throws JsonProcessingException{ObjectMapper objectMapper = new ObjectMapper();//Jackson 默认是会把时间转成timestamps形式,这里取消timestamps形式,可以自己自定义时间格式objectMapper.configure(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS,false);SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss a E");objectMapper.setDateFormat(simpleDateFormat);Date date = new Date();String str = objectMapper.writeValueAsString(date);return str;}

将Json数据响应到页面中需要在方法上添加@ResponseBody注解,
这里在类名上统一添加的@RestController,这里Json响应到页面上会出现乱码问题.解决方法有两种.第一种是@RequestMapping(value = “/json1”,produces =“application/json;charset=utf-8”),在里面加一个produces =“application/json;charset=utf-8”.

第二种方法就是在springmvc配置中进行配置,解决乱码问题:

 <!--Jackson乱码解决--><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>

进行配置可以一劳永逸,不需要在controller中再添加注解属性类=来解决问题

如果不想多写代码,可以将生成Jackson对象的过程写到一个工具类中:

JackUtils

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;import java.text.SimpleDateFormat;public class JackUtils {public  static String getJackMapper(Object object){return getJackMapper(object,"yy-MM-dd HH:mm:ss a E");}public static String getJackMapper(Object object,String dateFormat){// 创建一个Jackson对象映射器来解析数据ObjectMapper objectMapper = new ObjectMapper();objectMapper.configure(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS,false);SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);objectMapper.setDateFormat(sdf);try {return objectMapper.writeValueAsString(object);} catch (JsonProcessingException e) {e.printStackTrace();}return null;}
}

这样久可以直接进行就调用了:

 @RequestMapping("/json4")public String json4(){String objectMapper = JackUtils.getJackMapper(new Date());return objectMapper;}

最后看一下运行成功结果:




为了好看,这里给浏览器安装了JsonView插件,可以自动识别Json格式数据,显示成Json格式

SSM整合Jackson相关推荐

  1. 快速入门SSM整合配置建立第一个SSM项目模板

    场景 对于新手来说,学过Spring.SpringMVC.Mybatis,但是将其整合起来搭建项目就 比较困难. 环境 Eclipse+Mysql5.7+jdk8,没有搭建Maven项目,入门已经将需 ...

  2. SSM整合之XML方式,与配置事务,拦截器,异常处理,PageHelper分页插件整合

    SSM整合之XML方式 将主流的三大框架整合一起使用 spring:将需要的bean交给IOC管理 SpringMVC:解决表现层 MyBatis:解决持久层 创建maven项目(配置文件与代码中注释 ...

  3. 阿里开发规范文档_华为阿里等技术专家15年开发经验总结:SSM整合开发实战文档...

    前言 Spring自2002年诞生至今,已有近20年的历史,虽然几经变迁,但始终在继续发展和精进.Spring目前由Pivotal维护和开发. Pivotal是PaaS(平台即服务)的领导者,也是消息 ...

  4. mybatis+spring+springmvc ssm整合

    文章目录 mybatis 开发我的第一个mybatis程序 关于mybatis的核心API:SqlSession对象. mybatis连接数据库操作 log4j jackson parameterTy ...

  5. SSM整合,非常详细的SSM整合

    对于ssm框架网上有很多,这里只是自己为大家提供的一个ssm整合框架参考分享,这个前提是基于maven的管理工具写的, 如果觉得写得不好,博主这边已经把代码上传了: 不妨可以参考代码再理解学习:htt ...

  6. SSM框架学习文档以及SSM整合(附Github地址=含SSM学习时的实例代码)

    SSM框架学习 软件架构: 基于流行SSM框架:Spring+SpringMVC+Mybatis 项目配置: 使用Maven进行项目jar导入 ​ 使用Git进行版本控制,并将每次编写的代码上传到Gi ...

  7. 基于Maven+SpringMVC+Spring+MyBatis+Layui整合框架,超详细的SSM整合❤️

    人生有太多不如意,我们要学会去努力 参考文档:layUI文档:spring家族文档:mybatis文档 前言:SSM 整合 整合的思路是: 先创建spring框架 通过spring整合spring m ...

  8. 超十万字_超详细SSM整合实践_手动实现权限管理

    SSM整合_基础配置 SSM框架中包含Spring,SpringMVC,Mybatis.而Spring与SpringMVC都是Spring Framework的模块,无需整合.只需将Mybatis与S ...

  9. Maven+SSM整合

    Maven+SSM整合 1.工程体系图 2.创建mavenWeb项目,添加pom.xml文件依赖以及插件 <properties><project.build.sourceEncod ...

最新文章

  1. The ECDSA host key for XXX has changed
  2. 工作随笔之nginx 应用场景
  3. 海康威视摄像头安装插件检测不到_海康威视摄像机常见问题解答
  4. IP地址中的网络地址和主机地址分别是什么意思?怎么计算的呢?
  5. Windows 命令行大全
  6. 利用python爬虫(part17)--初识selenium
  7. python几多级证书_Openssl 生成多级证书
  8. Docker快速安装ZooKeeper开源分布式协调服务器
  9. 浏览器内核与web标准
  10. 在R中创建晶须和盒图
  11. 物联网发展 制定技术标准才能更好监管
  12. 移动终端安全问题分析与解决方案研究
  13. HR问“什么时间可以入职”,这样回答最保险!
  14. NXP JN5169 读写片外 FLASH
  15. 点餐小程序实战教程03-店铺信息展示
  16. maven子模块之间互相引入依赖,pom文件报错
  17. ubuntu16.04开机自动挂载nas盘
  18. IntelliJ IDEA 默认配置文件夹.IntelliJIdea在C盘,转移到其他盘符
  19. python while true try except_Python为true时,Try/Except,返回valu
  20. Ubuntu操作系统与Intel RST(Rapid Storage Tech)的兼容性问题

热门文章

  1. 数据压缩实验七——MEPG音频编码
  2. java arrays.setall_Java程序员的日常—— Arrays工具类的使用
  3. java切换账号功能_使用AccessibilityService实现微信自动切换账号功能
  4. 【微服务】重新理解微服务之它还那么纯粹吗?
  5. 【开源】STC8G2K64S4开发板
  6. C++ 之 伪随机数生成 <random>
  7. 【esp8266实践记录】一、使用Arduino IDE 完成为esp8266完成点灯闪烁
  8. 献给朋友们的一本书--《31天成为IT服务达人》
  9. 用户体验地图案例:走访大众点评成都范围烤鸭评价最高的餐厅
  10. 鼠标放小图上显示大图