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的时候,用了一次这个 ,转眼一年多就过去了,工作突然用到了,记个笔记吧