JsonField、JsonFormat用法简介

    技术2022-07-10  137

    文章目录

    JsonField用法JsonFormat用法

    JsonField用法

    **JsonField**是fastJson包中一个注解,主要作用于字段类型上,用于字段序列化及反序列化等。 /** * @author wenshao[szujobs@hotmail.com] */ @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER }) public @interface JSONField { /** * config encode/decode ordinal * @since 1.1.42 * @return */ int ordinal() default 0; /** * 指定字段名称 */ String name() default ""; /** * 自定义日期格式 */ String format() default ""; /** * 序列化默认为true */ boolean serialize() default true; /** * 反序列化默认为true */ boolean deserialize() default true; /** * 序列化方式(UseSingleQuotes、WriteEnumUsingToString...): * 当值为null时如果要支持序列化可以指定为WriteMapNullValue */ SerializerFeature[] serialzeFeatures() default {}; /** * 解析器的特性(AutoCloseSource、AllowComment...) */ Feature[] parseFeatures() default {}; }

    使用JsonField会非常方便在序列化和反序列化的时候,也可以单独作用于get/set方法上

    @Data public class OperationLog { private Integer id; @JSONField(name = "id") public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } private String supplierId; // 当name值为空的时候也支持序列化 @JSONField(name = "name", serialzeFeatures = SerializerFeature.WriteMapNullValue) private String userName; @JSONField(format = "yyyy-MM-dd HH:mm:ss") private String time; } {"id":11,"supplierId":"11","userName":null,"time":"yyyy-MM-dd HH:mm:ss"}

    JsonFormat用法

    **JsonFormat**是Jackson包中的一个注解,主要也是用于序列化和反序列化上,在作用于日期类型的字段 时,JsonFormat会更加方便,以及指定时区东八区,避免造成时区导致的时间误差 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date addTime;
    Processed: 0.014, SQL: 9