1.步骤:

1. 编写实体类Demo

2. 编写getDemo()方法

3. 测试

2.项目构建

编写实体类Demo

package com.kfit;

/**
* 这是一个测试实体类.
*/
public class Demo {
private int id;
private String name;
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;
} }

编写getDemo()

package com.kfit;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; /**
* 在这里我们使用RestController (等待于 @Controller 和 @RequestBody)
*/
@RestController
public class HelloController { /**
* 在这里我们使用@RequestMapping 建立请求映射:
* http://127.0.0.1:8080/hello
* @return
*/
@RequestMapping("/hello")
public String hello(){
return "hello-2016-12-11.v.0";
}
/**
* Spring Boot默认使用的json解析框架是jackson
* http://127.0.0.1:8080/getDemo
* @return
*/
@RequestMapping("/getDemo")
public Demo getDemo(){
Demo demo = new Demo();
demo.setId(1);
demo.setName("张三");
return demo;
}
}

Spring Boot完美使用FastJson解析JSON数据

个人使用比较习惯的json框架是fastjson,所以spring boot默认的json使用起来比较不习惯,所以很自然我就想我能不能使用fastjson进行json解析

引入fastjson依赖库

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>fastjson</artifactId>

<version>1.2.15</version>

</dependency>

这里要说下很重要的话,官方文档说的1.2.10以后,

会有两个方法支持HttpMessageconvert,一个是FastJsonHttpMessageConverter,

4.2以下的版本,一个是FastJsonHttpMessageConverter4支持4.2以上的版本,

具体有什么区别暂时没有深入研究。这里也就是说:低版本的就不支持了,

所以这里最低要求就是1.2.10+。

配置fastjon(支持两种方法)

第一种方法就是:

(1)启动类继承extends WebMvcConfigurerAdapter

(2)覆盖方法configureMessageConverters

代码

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.kfit</groupId>
<artifactId>spring-boot-hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <name>spring-boot-hello</name>
<url>http://maven.apache.org</url> <!--
spring boot 父节点依赖,引入这个之后相关的引入就不需要添加version配置,spring boot会自动选择最合适的版本进行添加。
-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 指定一下jdk的版本 ,这里我们使用jdk 1.8 ,默认是1.6 -->
<java.version>1.8</java.version>
</properties> <dependencies>
<!--
spring-boot-starter-web: MVC,AOP的依赖包....
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--
<version></version>
由于我们在上面指定了 parent(spring boot)
-->
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.15</version>
</dependency> </dependencies>
</project>

启动类

package com.kfit;

import java.util.List;

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; /**
* 在这里我们使用@SpringBootApplication指定这是一个 spring boot的应用程序.
*/
//extends WebMvcConfigurerAdapter
@SpringBootApplication
public class App extends WebMvcConfigurerAdapter{ @Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
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) {
/*
* 在main方法进行启动我们的应用程序.
*/
SpringApplication.run(App.class, args);
}
}

实体类

package com.kfit;

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;
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;
} }

controller类

package com.kfit;
import java.util.Date; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; /**
* 在这里我们使用RestController (等待于 @Controller 和 @RequestBody)
*/
@RestController
public class HelloController { /**
* 在这里我们使用@RequestMapping 建立请求映射:
* http://127.0.0.1:8080/hello
* @return
*/
@RequestMapping("/hello")
public String hello(){
return "hello-2016-12-11.v.0";
}
/**
* Spring Boot默认使用的json解析框架是jackson
* http://127.0.0.1:8080/getDemo
* @return
*/
@RequestMapping("/getDemo")
public Demo getDemo(){
Demo demo = new Demo();
demo.setId(1);
demo.setName("张三");
demo.setCreateTime(new Date());
return demo;
}
}

第二种方法

1)在App.java启动类中, 注入Bean : HttpMessageConverters

package com.kfit;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.http.converter.HttpMessageConverter; import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; /**
* 在这里我们使用@SpringBootApplication指定这是一个 spring boot的应用程序.
*/ @SpringBootApplication
public class App{
/**
* 在这里我们使用 @Bean注入 fastJsonHttpMessageConvert
* @return
*/
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
// 1、需要先定义一个 convert 转换消息的对象;
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); //2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); //3、在convert中添加配置信息.
fastConverter.setFastJsonConfig(fastJsonConfig); HttpMessageConverter<?> converter = fastConverter;
return new HttpMessageConverters(converter);
} /**
* @param args
*/
public static void main(String[] args) {
/*
* 在main方法进行启动我们的应用程序.
*/
SpringApplication.run(App.class, args);
}
}

总结

我们要使用第三方的json解析框架的话:
1、我们需要在pom.xml中引入相应的依赖;
2、需要在App.java中继承WebMvcConfigurerAdapter重写方法:configureMessageConverters 添加我们自己定义的json解析框架;
2.1 @Bean注入第三方的json解析框架:

最新文章

  1. IOS 微信 6.5.2 自动播放音乐 解决方案
  2. python核心编程第六章练习6-11
  3. 剑指offer面试题31连续子数组的最大和
  4. Sencha Touch 手机移动开发框架 HTML5 项目压缩方案;
  5. pycharm 皮肤主题及个性化设置
  6. Mac 下 Nginx、MySQL、PHP-FPM 的安装配置
  7. C语言中静态库和动态库笔记
  8. Educational Codeforces Round 16 B
  9. Android SurfaceView 绘图覆盖刷新及脏矩形刷新方法
  10. 拼写sql语句随笔
  11. JavaScript加密解密7种方法总结分析
  12. [SCOI2008]斜堆
  13. + CategoryInfo : NotSpecified: (:) [], PSSecurityException + FullyQualifiedErrorId : RuntimeException
  14. Description Resource Path Location Type Java compiler level does not match the version of(编译问题)
  15. sync.Pool的使用
  16. js 鼠标拖拽元素
  17. P2157 [SDOI2009]学校食堂 (dp+状态压缩)
  18. 美国恐怖故事第七季/全集American Horror Story全迅雷下载
  19. 【Hibernate学习笔记-3】在Spring下整合Hibernate时, 关于sessionFactory的类型的说明
  20. 显示iOS所有系统字体

热门文章

  1. 一般处理程序,ajax
  2. Mysql学习(一)之简单介绍
  3. LintCode 29---交叉字符串
  4. Nginx请求限制配置
  5. Nginx的快速安装
  6. Go语法的基本使用(三)
  7. django优化--ORM查询
  8. centos7搭建activemq服务
  9. 标准C语言(7)
  10. CentOS 7 中英文桌面安装步骤详细图解