stringBoot使用fastjson
程序员文章站
2022-06-28 13:32:58
1. org.springframework.boot spring-boot-starter-web ......
1. springboot中默认使用的 json解析器是 jackson 。需要排除后引入 fastjson。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 排除 -->
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--加载fastjoon-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
2.创建 MyFastJsonConfig 类 配置 输出json细节
@Configuration
public class MyFastJsonConfig {
@Bean
FastJsonHttpMessageConverter fastJsonHttpMessageConverter() {
FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
FastJsonConfig config = new FastJsonConfig();
//不加下面的会报 Caused by: java.lang.IllegalArgumentException: Content-Type cannot contain wildcard type '*'
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);
converter.setSupportedMediaTypes(supportedMediaTypes);
converter.setDefaultCharset(Charset.forName("UTF-8"));
//配置日期格式
config.setDateFormat("yyyy年MM月dd日");
config.setCharset(Charset.forName("UTF-8"));
//配置不输出 null ,例如 string 为null 则输出"",集合为空也不输出null
//SerializerFeature.WriteClassName 输出类名。感觉没用
config.setSerializerFeatures(
SerializerFeature.WriteMapNullValue,
SerializerFeature.PrettyFormat,
SerializerFeature.WriteNullStringAsEmpty,
SerializerFeature.WriteNullListAsEmpty);
converter.setFastJsonConfig(config);
return converter;
}
本文地址:https://blog.csdn.net/chinaaaaaaaaaaa/article/details/110188194
上一篇: 古代人和现代人相比,谁的力气更大?
推荐阅读
-
maven配置默认使用的JDK版本 博客分类: maven maven
-
在.NET C#中使用sqlite 博客分类: Windows Mobile .netSQLiteCC++C#
-
sqlite使用手册(转) SQLiteSQLOS化工Oracle
-
java的svn的使用 博客分类: JAVA javasvn
-
[AIR]Adobe AIR 中使用sqlite - 连接数据库 博客分类: Flex AIR AS3 AIRAdobeSQLiteActionScriptFlash
-
Python 进阶必学库:Pyinstaller 使用详解
-
maven配置默认使用的JDK版本 博客分类: maven maven
-
使用sqllite3作为Rails的数据库 博客分类: Rails and Ruby RailsSQLiteRubyMySQL单元测试
-
Ruby SQLite GUI使用实录(原) 博客分类: Ruby on Rails RubySQLiteActiveRecordRailsPHP
-
在php上使用fork以及socket的sample_PHP教程