springBoot默认json转换和fastjson

本文介绍了如何在SpringBoot项目中使用Jackson库进行对象的序列化和反序列化,重点关注了日期格式处理、自定义序列化器和属性控制。同时提到了Fastjson的使用和版本管理背景。
摘要由CSDN通过智能技术生成

springBoot的配置类:

package com.quxiao.config;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.fasterxml.jackson.module.paramnames.ParameterNamesModule;
import com.quxiao.pojo.TestUser;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * @program: boot-json-config
 * @author: quxiao
 * @create: 2024-02-14 10:39
 **/
@Configuration
public class TestUserConfig {
    @Bean
    public TestUser testUser() {
        TestUser user = new TestUser();
        user.setAge(12);
        user.setName("sdad");
        return user;
    }

    @Bean
    public ObjectMapper om() {
        ObjectMapper om = new ObjectMapper();
        //关闭一些默认的序列化操作
        om.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
        om.disable(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE);
        om.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

        //元素为空不序列化
        om.setSerializationInclusion(JsonInclude.Include.NON_NULL);
        JavaTimeModule module = new JavaTimeModule();
        //指定时间的序列化方式
        module.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
        module.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
        module.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
        module.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));

        //将long改为string传输
        module.addSerializer(Long.class, ToStringSerializer.instance);
        module.addSerializer(Long.TYPE, ToStringSerializer.instance);

        om.registerModule(module).registerModule(new ParameterNamesModule());
        return om;
    }
}
@JsonProperty("指定属性名称")
@JsonIgnore 忽略这个属性,不会json转换。
import com.alibaba.fastjson.JSONObject;

import java.util.ArrayList;
import java.util.List;

/**
 * @program: jdk17Test
 * @author: quxiao
 * @create: 2023-12-21 15:56
 **/
public class T3 {
    static class quiao {
        @Override
        public String toString() {
            return "quiao{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }

        String name;
        int age;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }

        public quiao(String name, int age) {
            this.name = name;
            this.age = age;
        }
    }

    public static void main(String[] args) {
        List<quiao> list = new ArrayList<>();
        list.add(new quiao("gagas", 18));
        list.add(new quiao("gagas", 18));
        list.add(new quiao("gagas", 18));
        list.add(new quiao("gagas", 18));
        String s = JSONObject.toJSONString(list);
        List<quiao> quiaos = JSONObject.parseArray(s, quiao.class);
        System.out.println(quiaos);
    }

    static void t1() {
        List<String> list = new ArrayList<>();
        list.add("123");
        list.add("456");
        String toJSONString = JSONObject.toJSONString(list);
        System.out.println(toJSONString);
        List<String> list1 = JSONObject.parseArray(toJSONString, String.class);
        System.out.println(list1);
    }
}
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>2.0.25</version>
</dependency>

还是学springmvc的时候,用了一次这个 ,转眼一年多就过去了,工作突然用到了,记个笔记吧

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值