1.引入FastJson依赖包

 <!-- FastJson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.15</version></dependency>

  

pom.xml参考

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.muyang</groupId><artifactId>boot1</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>boot1</name><url>http://maven.apache.org</url><!-- Inherit defaults from Spring Boot --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.9.RELEASE</version><!--<version>2.0.1.RELEASE</version>--></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><!-- 自动依赖parent里面的版本<version></version>--></dependency><!--  dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency--><!-- FastJson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.15</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies><build><finalName>boot1</finalName><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>${java.version}</source><target>${java.version}</target>               </configuration></plugin></plugins></build></project>

  

2.App.java继承WebMvcConfigurerAdapter,然后复写configureMessageConverters方法,加入自定义的FastJson配置

/*** 复写configureMessageConverters*/@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> converters) {// TODO Auto-generated method stub//super.configureMessageConverters(converters);/** 1、需要先定义一个 convert 转换消息的对象;* 2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;* 3、在convert中添加配置信息.* 4、将convert添加到converters当中.* */// 1、需要先定义一个 convert 转换消息的对象;FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();//2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;FastJsonConfig fastJsonConfig = new FastJsonConfig();fastJsonConfig.setSerializerFeatures(              SerializerFeature.PrettyFormat);//3、在convert中添加配置信息.fastConverter.setFastJsonConfig(fastJsonConfig);//4、将convert添加到converters当中.converters.add(fastConverter);}

  

APP.JAVA参考

package com.muyang.boot1;import java.util.List;import org.apache.log4j.Logger;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;/*** Hello world!**/
@SpringBootApplication
public class App extends WebMvcConfigurerAdapter
{private static Logger logger = Logger.getLogger(App.class);/*** 复写configureMessageConverters*/@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> converters) {// TODO Auto-generated method stub//super.configureMessageConverters(converters);/** 1、需要先定义一个 convert 转换消息的对象;* 2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;* 3、在convert中添加配置信息.* 4、将convert添加到converters当中.* */// 1、需要先定义一个 convert 转换消息的对象;FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();//2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;FastJsonConfig fastJsonConfig = new FastJsonConfig();fastJsonConfig.setSerializerFeatures(                SerializerFeature.PrettyFormat);//3、在convert中添加配置信息.fastConverter.setFastJsonConfig(fastJsonConfig);//4、将convert添加到converters当中.converters.add(fastConverter);}public static void main( String[] args ){//System.out.println( "Hello World!" );\SpringApplication.run(App.class, args);logger.info("--sprint-boot-");}}

  

3.建立Demo.java类,用来创建json输出之前的对象,并创建new Date()日期格式化属性

JSONField(format="yyyy-MM-dd HH:mm")

private Date createTime

/*** 格式化时间*/@JSONField(format="yyyy-MM-dd HH:mm")private Date createTime;    /*** 不显示json*/@JSONField(serialize=false)private String remarks;

  

Demo.java参考

package com.muyang.boot1;import java.util.Date;import com.alibaba.fastjson.annotation.JSONField;public class Demo {private int id;private String name;/*** 格式化时间*/@JSONField(format="yyyy-MM-dd HH:mm")private Date createTime;  /*** 不显示json*/@JSONField(serialize=false)private String remarks;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}public String getRemarks() {return remarks;}public void setRemarks(String remarks) {this.remarks = remarks;}}

  

4.HelloController.java控制器

普通输出

@RequestMapping(value="/hello")public String hello(){return "hello";}

  

json输出

/**
* charset解决中文乱码
**/
@RequestMapping(value="/getDemo", produces = "application/json; charset=utf-8")public Demo getDemo(){Demo demo = new Demo();demo.setId(1);demo.setName("张三");demo.setCreateTime(new Date());demo.setRemarks("这是备注信息");return demo;}

  

HelloController.java参考

package com.muyang.boot1;import java.util.Date;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@RequestMapping(value="/hello")public String hello(){return "hello";}@RequestMapping(value="/getDemo", produces = "application/json; charset=utf-8")public Demo getDemo(){Demo demo = new Demo();demo.setId(1);demo.setName("张三");demo.setCreateTime(new Date());demo.setRemarks("这是备注信息");return demo;}}

  

转载于:https://www.cnblogs.com/achengmu/p/9295088.html

FastJson/spring boot: json输出相关推荐

  1. spring boot json字符串转复杂对象

    bean 创建 /*** @Author wangZhiDong* @Date 2021/8/22* 学生实体**/ @Data public class Student {private Strin ...

  2. Spring Boot EasyUI edatagrid 扩展

    edatagrid扩展组件详解 edatagrid组件是datagrid的扩展组件,增加了统一处理CRUD的功能,可以用在数据比较简单的页面.使用的时候需要额外引入jquery.edatagrid.j ...

  3. Spring Boot 2.0.0参考手册_中文版

    Spring Boot参考文档 第一部分:Spring Boot文档 1. 关于文档 Sring参考文档可以通过html,pdf和epub 三种形式得到.最新的文档可以从docs.spring.io/ ...

  4. ELK 处理 Spring Boot 日志,妙!

    以下文章来源方志朋的博客,回复"666"获面试宝典 在排查线上异常的过程中,查询日志总是必不可缺的一部分.现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常 ...

  5. ELK 处理 Spring Boot 日志,有点强悍!

    在排查线上异常的过程中,查询日志总是必不可缺的一部分.现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常困难.工欲善其事,必先利其器.如果此时有一个统一的实时日志分析平台,那可 ...

  6. Spring Boot swagger之前后端分离

    前后端分离详解 现在的趋势发展,需要把前后端开发和部署做到真正的分离做前端的谁也不想用Maven或者Gradle作为构建工具做后端的谁也不想要用Grunt或者Gulp作为构建工具 前后端需要通过接口来 ...

  7. Spring Boot EasyUI datagrid

    jQueryEasyUI详解 jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面. 开发者 ...

  8. Spring Boot Java应用代码混淆介绍

    本文简要介绍一下开源Java混淆编译工具ProGuard的实际应用案例. 我们知道某些情况下软件的作者需要保护软件本身不被使用者反编译,或者给对方反编译制造一定的障碍,为了达到这个目的人们可以有很多不 ...

  9. Spring Boot:在Spring Boot中使用定时任务

    2019独角兽企业重金招聘Python工程师标准>>> 本文主要介绍如何在Spring Boot中使用定时任务,假设你已经建好了一个基础的Spring Boot项目.首先,我们在项目 ...

最新文章

  1. windows10删除更新的程序
  2. SAP RETAIL Rapid Replenishment
  3. ios 裁剪圆形头像_iOS开发笔记:实现圆形头像
  4. VB.NET模块的总结(一)精简版
  5. NFL原则告诉我们做决策的时候,试图找到一个能解决所有问题,“大而全”的方案是不存在的。我们应当找到最关心的问题,因地制宜做出选择。——聚焦目标,取舍有道!...
  6. 用C++实现不能被继承的类
  7. 【转】C#执行rar,zip文件压缩的几种方法及我遇到的坑总结
  8. SybaseASE系统表的应用
  9. Java读取word中表格
  10. 使用js数组sort比较函数,实现按照对象的某个属性对数组进行排序
  11. 七类***各有“黑招”
  12. 第 7 章 Neutron - 070 - Neutron 如何支持多种 network provider
  13. c++有关iostream和iostream.h
  14. 可靠性测试审查checklist
  15. 除了快,5G 有哪些关键技术?
  16. 学数学,读原著,勤思考,效果好
  17. VUE3 Composition API详解
  18. crtmpserver系列(二):搭建简易流媒体直播系统
  19. Js——ES2015(ES6)基础语法
  20. 免费-进销存、Erp系统、、crm系统、oa系统推荐锦集

热门文章

  1. linux中文系统换英文字体,linux系统下肿么切换字体?
  2. linux编译blas,Linux下安装BLAS,CBLAS,LAPACK
  3. mysql表打包到程序中_C#/winform程序打包布署 如何把SQL 数据库 一起打包进去?
  4. 【计算机组成原理】计算机软硬件组成
  5. python自动化开发例子_Python自动化开发从浅入深-语言基础(常用模块)
  6. calendar前推n天_Shell获取ES3天的索引列表进行迁移操作
  7. 数学--数论--Hdu 5793 A Boring Question (打表+逆元)
  8. Pyhton函数式编程简介(四)装饰器
  9. 负债十五万左右,信用卡十万,网贷四五万,怎么上岸?
  10. 联想王传东回应“宁愿放弃5G也不选华为”言论:纯属谣言