当前位置: 首页 > news >正文

springboot笔记示例六:fastjson2集成

springboot笔记示例六:fastjson2集成

本文md下载

https://download.csdn.net/download/a254939392/89491102

本文md文档下载地址

#springboot json官方说明

https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/boot-features-json.html

spring Boot 提供与三个 JSON 映射库的集成:

  • Gson
  • Jackson
  • JSON-B

springboot 默认库为:Jackson

 <!-- springboot-json --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-json</artifactId></dependency>

yml配置自定义序列化格式

spring:jackson:# @JsonFormat 日期格式和时区配置date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT+8property-naming-strategy: SNAKE_CASE

阿里巴巴FastJson2集成

spring5.x

<dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>2.0.43</version>
</dependency>
<dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2-extension-spring5</artifactId><version>2.0.43</version>
</dependency>
package com.brm.config;import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.JSONWriter;
import com.alibaba.fastjson2.support.config.FastJsonConfig;
import com.alibaba.fastjson2.support.spring.http.converter.FastJsonHttpMessageConverter;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;@Configuration
public class FastjsonConfiguration {@Beanpublic HttpMessageConverters fastJsonConfigure() {FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();FastJsonConfig fastJsonConfig = new FastJsonConfig();//fastjson2 默认格式为yyyy-MM-dd HH:mm 无需重新设置fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");//fastjson2 默认StandardCharsets.UTF_8 无需重新设置
//        fastJsonConfig.setCharset(StandardCharsets.UTF_8);fastJsonConfig.setReaderFeatures(//字段如 vBtn  会被转为 VBtn  处理这样的问题JSONReader.Feature.SupportSmartMatch,JSONReader.Feature.FieldBased,//初始化String字段为空字符串""
//                JSONReader.Feature.InitStringFieldAsEmpty,//对读取到的字符串值做trim处理JSONReader.Feature.TrimString);fastJsonConfig.setWriterFeatures(//字段如 vBtn  会被转为 VBtn  处理这样的问题JSONWriter.Feature.FieldBased,//long 转 string 丢失精度问题JSONWriter.Feature.WriteLongAsString,// 保留map空的字段JSONWriter.Feature.WriteMapNullValue,//将List类型的null转成[]JSONWriter.Feature.WriteNullListAsEmpty,//将String类型的null转成""JSONWriter.Feature.WriteNullStringAsEmpty,//将Boolean类型的null转成false
//                JSONWriter.Feature.WriteNullBooleanAsFalse,//日期格式转换JSONWriter.Feature.PrettyFormat//将空置输出为缺省值,Number类型的null都输出为0,String类型的null输出为"",数组和Collection类型的输出为[]
//                JSONWriter.Feature.NullAsDefaultValue);fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);List<MediaType> supportedMediaTypes = new ArrayList<>();supportedMediaTypes.add(MediaType.APPLICATION_JSON);
//        supportedMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);supportedMediaTypes.add(MediaType.APPLICATION_ATOM_XML);supportedMediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED);supportedMediaTypes.add(MediaType.APPLICATION_OCTET_STREAM);supportedMediaTypes.add(MediaType.APPLICATION_PDF);supportedMediaTypes.add(MediaType.APPLICATION_RSS_XML);supportedMediaTypes.add(MediaType.APPLICATION_XHTML_XML);supportedMediaTypes.add(MediaType.APPLICATION_XML);supportedMediaTypes.add(MediaType.IMAGE_GIF);supportedMediaTypes.add(MediaType.IMAGE_JPEG);supportedMediaTypes.add(MediaType.IMAGE_PNG);supportedMediaTypes.add(MediaType.TEXT_EVENT_STREAM);supportedMediaTypes.add(MediaType.TEXT_HTML);supportedMediaTypes.add(MediaType.TEXT_MARKDOWN);supportedMediaTypes.add(MediaType.TEXT_PLAIN);supportedMediaTypes.add(MediaType.TEXT_XML);fastJsonHttpMessageConverter.setSupportedMediaTypes(supportedMediaTypes);fastJsonHttpMessageConverter.setDefaultCharset(StandardCharsets.UTF_8);return new HttpMessageConverters(fastJsonHttpMessageConverter);}
}
http://www.lryc.cn/news/388164.html

相关文章:

  • VLOOKUP函数在表格的简单运用-两个表匹配
  • http.cookiejar.LoadError: Cookies file must be Netscape formatted,not JSON.解决方案
  • 逻辑操作符
  • Java调用第三方接口的秘籍:技巧、案例与最佳实践
  • 【机器学习】机器学习重要方法——深度学习:理论、算法与实践
  • 计网之IP
  • mybatis延迟加载
  • 危险!属性拷贝工具的坑!
  • qt实现打开pdf(阅读器)功能用什么库比较合适
  • 在node.js环境中使用web服务器http-server运行html静态文件
  • 前端学习篇一(HTML)
  • VUE笔记
  • Datawhale机器学习day-1
  • 业务模型扩展字段存储
  • 50+k8s常用命令,助你成为k8s大牛!
  • 002-基于Sklearn的机器学习入门:回归分析(上)
  • python实现网页自动化(自动登录需要验证的网页)
  • ctfshow-web入门-命令执行(web71-web74)
  • 一体化导航的优点及应用领域
  • “吃饭大学”!中国大学食堂排行TOP10(含西电)
  • 使用 Mybatis 时,调用 DAO接口时是怎么调用到 SQL 的?
  • 微信小程序毕业设计-微信食堂线上订餐系统项目开发实战(附源码+论文)
  • 昂首资本实例使用价格行为策略,交易翻倍一点都不难
  • 20240701 每日AI必读资讯
  • GPT-5 一年半后发布,对此你有何期待?
  • Redis学习——Redisson 分布式锁集成及其简单使用
  • 08 - matlab m_map地学绘图工具基础函数 - 绘制线、图例、添加文字注释等函数
  • Luminar Neo 1.20.0 (macOS Universal) - 创新 AI 图像编辑器
  • 谈谈Flink消费kafka的偏移量
  • MySQL 高级SQL高级语句(二)