Gson 对LocalDateTime的序列化处理
时间: 2023-07-18 12:18:37 浏览: 160
gson2.8版本jar包
对于Gson对LocalDateTime的序列化处理,需要先自定义一个Gson的TypeAdapter,然后在TypeAdapter中实现LocalDateTime的序列化和反序列化。
以下是一个示例代码:
```
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
public class LocalDateTimeTypeAdapter extends TypeAdapter<LocalDateTime> {
private DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
@Override
public void write(JsonWriter out, LocalDateTime value) throws IOException {
if (value == null) {
out.nullValue();
} else {
out.value(formatter.format(value));
}
}
@Override
public LocalDateTime read(JsonReader in) throws IOException {
if (in.peek() == null) {
return null;
} else {
String dateTimeStr = in.nextString();
return LocalDateTime.parse(dateTimeStr, formatter);
}
}
}
```
在使用Gson进行对象序列化时,需要将该TypeAdapter注册到Gson中:
```
Gson gson = new GsonBuilder()
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeTypeAdapter())
.create();
```
这样,当对象中有LocalDateTime类型的属性时,在使用Gson序列化和反序列化时,就会自动调用该TypeAdapter进行处理。
阅读全文