欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

gson json的date是空白 轉(zhuǎn)

Gson是Java中一個(gè)很方便的JSON庫(kù),可以方便地將POJO對(duì)象轉(zhuǎn)換成JSON字符串,也可以將JSON字符串轉(zhuǎn)換成Java對(duì)象。然而,有時(shí)候在轉(zhuǎn)換日期時(shí),會(huì)遇到一個(gè)問題,就是日期的值在轉(zhuǎn)換成JSON或者從JSON中轉(zhuǎn)換回Java對(duì)象時(shí)會(huì)變成空白。

Gson gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd'T'HH:mm:ss")
.create();

以上代碼是設(shè)置Gson轉(zhuǎn)換日期的格式為"yyyy-MM-dd'T'HH:mm:ss",可以根據(jù)需要進(jìn)行修改。在我們轉(zhuǎn)換日期時(shí),只需要傳入這個(gè)Gson對(duì)象即可:

String json = gson.toJson(myObjectWithDate);
MyObjectWithDate obj = gson.fromJson(json, MyObjectWithDate.class);

然而,有時(shí)候我們會(huì)發(fā)現(xiàn)從JSON中解析出來的日期為null,這是因?yàn)镴ava中日期類型的默認(rèn)值為null,而在Gson中,null會(huì)被轉(zhuǎn)換成JSON的null。為了解決這個(gè)問題,我們可以使用一個(gè)特殊的日期類型Adapter來處理這種情況:

public class DateTypeAdapter extends TypeAdapter{
@Override
public void write(JsonWriter out, Date value) throws IOException {
if (value == null) {
out.nullValue();
} else {
out.value(value.getTime());
}
}
@Override
public Date read(JsonReader in) throws IOException {
long time = in.nextLong();
return new Date(time);
}
}
// 使用方式
Gson gson = new GsonBuilder()
.registerTypeAdapter(Date.class, new DateTypeAdapter())
.setDateFormat("yyyy-MM-dd'T'HH:mm:ss")
.create();

以上代碼中,DateTypeAdapter將日期的值轉(zhuǎn)換成時(shí)間戳,并在解析時(shí)將時(shí)間戳轉(zhuǎn)換回日期對(duì)象。通過這種方式,我們就可以正確地從JSON中解析出日期了。