SpringBoot二十:使用FastJson解析JSON数据

springboot默认自带json解析框架,默认使用jackson,如果使用fastjson,可以按照下列方式配置使用

pom文件引入以下依赖

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

官方文档说的1.2.10以后,会有两个方法支持HttpMessageconvert,一个是FastJsonHttpMessageConverter,支持4.2以下的版本,一个是FastJsonHttpMessageConverter4支持4.2以上的版本,具体有什么区别暂时没有深入研究。这里也就是说:低版本的就不支持了,所以这里最低要求就是1.2.10+

HttpMessageConverters

@Configuration
public class HttpConverterConfig {

	@Bean
	public HttpMessageConverters fastJsonHttpMessageConverters() {
		// 1.定义一个converters转换消息的对象
		FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
		// 2.添加fastjson的配置信息,比如: 是否需要格式化返回的json数据
		FastJsonConfig fastJsonConfig = new FastJsonConfig();
		fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
		// 日期格式化
		// fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
		// 3.在converter中添加配置信息
		fastConverter.setFastJsonConfig(fastJsonConfig);
		// 4.将converter赋值给HttpMessageConverter
		HttpMessageConverter<?> converter = fastConverter;
		// 5.返回HttpMessageConverters对象
		return new HttpMessageConverters(converter);
	}

}

创建实体

@Data
public class User {

	private int id;
	private String name;
	@JSONField(format = "yyyy-MM-dd HH:mm")
	private Date createTime;
	/**
	 * serialize:是否需要序列化属性 ;在实体类中使用@JSONField(serialize=false),此字段就不返回了
	 */
	@JSONField(serialize = false)
	private String remarks;

}

测试

@RestController
public class UserController {
	/**
	 * Spring Boot默认使用的json解析框架是jackson
	 * 
	 * @return
	 */
	// http://localhost:8080/getUser
	@RequestMapping("/getUser")
	public User getUser() {
		User user = new User();
		user.setId(1);
		user.setName("张三");
		user.setCreateTime(new Date());
		user.setRemarks("备注信息");
		return user;
	}

}

代码托管:springboot_fastJson

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值