fastjson配置类FastJsonConfig

阅读数:273 评论数:0

跳转到新版页面

分类

python/Java

正文

一、概述

FastJsonConfig是用于配置FastJson序列化和反序列化的配置类。它可以设置各种序列化和反序列化的参数,包括日期格式、序列化特性、过滤器、自定义序列化器和反序列化器等。

二、序列化特性

序列化特性用于控制JSON输出格式,例如禁用循环引用、输出空置字段、美化输出格式等。SerializerFeature是一个枚举类型,它包括很多选项。

PrettyFormat 美化输出格式,使其更易读。
WriteMapNullValue 输出空置字段,默认为false。
DisableCircularReferenceDetect 禁用循环引用,默认为false。
WriteDateUseDateFormat 按指定格式输出日期,例如yyyy-MM-dd HH:mm:ss。
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(
    SerializerFeature.PrettyFormat, 
    SerializerFeature.WriteMapNullValue,
    SerializerFeature.DisableCircularReferenceDetect,
    SerializerFeature.WriteDateUseDateFormat
);

二、日期格式

FastJson默认使用ISO-8601格式输出日期,例如"2019-12-01T12:00:00.000Z"。我们可以通过设置DateFormat来指定输出格式,例如"yyyy-MM-dd HH:mm:ss"。

FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");

三、过滤器

过滤器可以用于在序列化时进行字段过滤、属性重命名等操作。FastJson提供了多种过滤器,例如PropertyPreFilter、NameFilter、ValueFilter、BeforeFilter、AfterFilter等。

FastJsonConfig fastJsonConfig = new FastJsonConfig();
PropertyPreFilter propertyPreFilter = new SimplePropertyPreFilter(User.class, "id", "name", "age");
fastJsonConfig.setSerializeFilters(propertyPreFilter);

四、自定义序列化和反序列化器

如果需要对某些类型的数据进行特殊处理,可以通过自定义序列化器和反序列化器来实现。我们可以继承Serializer和Deserializer接口,实现serialize和deserialize方法,然后将自定义的序列化器和反序列化器注册到FastJsonConfig中。

public class DateSerializer extends JsonSerializer<Date> {

    @Override
    public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String str = sdf.format(date);
        jsonGenerator.writeString(str);
    }




相关推荐

public class User { @JSONField(name = "userId") private int id; @JSONField(serialize =

一、概述 1、序列化的作用 个人理解它的主要作用是为了对象可以跨平台存储和进行网络传输,在网络传输的时候,我们需要经过 IO,而 IO 传输支持的就是字节数组这种格式,所以序列化过后可以更好的传输。

import com.alibaba.fastjson.JSONObject; public BaseJsonRst exec

一、默认日期序列化 1、fastjson默认使用的序列格式 public static String DEFFAULT_DATE_FORMAT = "yyyy-MM-dd HH:m

一、Java对象转JSON System.out.println("~~~~~~~~~~~ 1.Java对象 转 Json字符串 ~~~~~~~~~~~"); String ju = JSON.toJ

在线程组右键,添加一个HTTP信息头管理器。 Content-Type=application/json 在HTTP请求页面设置编码为 UTF-8.把json格式的参

在windows环境下cmd运行jar包默认使用GBK编码格式,而我们一般使用utf-8 所以在cmd下启动jar包时可以指定编码格式 java -Dfile.encoding=UTF-8 -ja

一、@JsonFormat  1、作用 约束时间的接收格式和响应格式(接收和响应的都是JSON字符串),用于在JSON和java.util.Date之间约束,注意因为我们在东八区,使用时需要加上时区(

一、示例数据 CREATE TABLE `json_test` ( `id` int NOT NULL AUTO_INCREMENT, `roles` json DEFAULT NULL CO

当然可以自己写redis的工具类,或者使用第三方开源jar包或代码,这里使用spring boot的集成类。 一、pom依赖 <dependency> <gro