Gson
setDateFormat用于设置java.util.Date类型的格式
registerTypeAdapter则是用于LocalDateTime类型
private final Gson gson=new GsonBuilder().setDateFormat("yyyy-MM-dd hh:mm:ss")
.registerTypeAdapter(LocalDateTime.class,
(JsonSerializer<LocalDateTime>) (localDateTime, type, jsonSerializationContext)
-> new JsonPrimitive(localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))))
.create();
public <T> T unmarshal(Class<T> clazz, String s) {
return gson.fromJson(s,clazz);
}
public String marshal(Object o) {
return gson.toJson(o);
}
jackson
JsonFormat
通过在LocalDateTime类型的Field上添加以下注解即可
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
JsonDeserialize
也可以使用以下注解来自定义实现类
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
至于实现类的写法需要实现JsonDeserializer接口,可以参见该篇