spring boot入门(二)- 输出json对象
pom文件引入fastjson的依赖
<!-- 添加fastjson 依赖包. -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.15</version>
</dependency>
pojo类
package com.hnust.pojo;
import com.hnust.utils.Validator;
import java.io.Serializable;
import java.util.Date;
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private Integer uid;
private String username;
private String realname;
public Integer getUid() {
return uid;
}
public void setUid(Integer uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getRealname() {
return realname;
}
public void setRealname(String realname) {
this.realname = realname;
}
}
controller类
package com.hnust.controller;
import com.hnust.pojo.UserInfo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by xiaojiang on 2017/8/27.
*/
@RestController
@Controller
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "helloworld";
}
/**
* Spring Boot默认使用的json解析框架是jackson
*/
@RequestMapping("/getUserInfo")
@ResponseBody
public UserInfo getUserInfo() {
UserInfo userInfo = new UserInfo();
userInfo.setUid(123456);
userInfo.setUsername("张三");
userInfo.setRealname("zhangsan123");
return userInfo;
}
}
启动类添加配置json的bean
package com.hnust;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
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.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
/**
* Created by xiaojiang on 2017/8/27.
*/
@SpringBootApplication
public class AppMain {
/**
* 在这里我们使用 @Bean注入 fastJsonHttpMessageConvert
* @return
*/
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
// 1、需要先定义一个 convert 转换消息的对象;
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
fastJsonConfig.setCharset(Charset.forName("UTF-8"));
//3、在convert中添加配置信息.
//处理中文乱码问题
List<MediaType> fastMediaTypes = new ArrayList<>();
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
fastConverter.setSupportedMediaTypes(fastMediaTypes);
HttpMessageConverter<?> converter = fastConverter;
return new HttpMessageConverters(converter);
}
public static void main(String[] args) {
/**在main方法进行启动我们的应用程序*/
SpringApplication.run(AppMain.class);
}
}
结果运行图:
注意:
1、spring默认支持jackson格式的json
2、springboot配置bean使用@bean