色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

gson json轉對象 date

李中冰1年前10瀏覽0評論

Gson是一個Java庫,可以將Java對象轉換為Json,也可以將Json轉換回Java對象。在使用Gson進行Json轉對象時,經常會遇到需要將Json中的日期時間格式轉換為Java Date類型的情況。下面是一個簡單的例子:

String json = "{\"name\":\"張三\",\"birthday\":\"2021-10-01 12:00:00\"}";
Gson gson = new Gson();
User user = gson.fromJson(json, User.class);

在上面的例子中,我們需要將Json字符串中的birthday字段轉換為Java Date類型。Gson提供了TypeAdapter接口,可以自定義類型轉換器來處理這種情況。

public class DateTypeAdapter implements JsonDeserializer, JsonSerializer{
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
try {
return dateFormat.parse(json.getAsString());
} catch (ParseException e) {
throw new JsonParseException(e);
}
}
@Override
public JsonElement serialize(Date src, Type typeOfSrc, JsonSerializationContext context) {
return new JsonPrimitive(dateFormat.format(src));
}
}

上面的代碼中,我們定義了一個DateTypeAdapter類,實現了JsonDeserializer和JsonSerializer接口。其中,deserialize方法用于將Json中的字符串轉換為Java Date類型,serialize方法用于將Java Date類型轉換為Json字符串。

接下來,我們需要將DateTypeAdapter注冊到Gson中:

GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapter(Date.class, new DateTypeAdapter());
Gson gson = builder.create();
User user = gson.fromJson(json, User.class);

在上面的代碼中,我們使用GsonBuilder創建了一個builder實例,并將DateTypeAdapter注冊到了其中。最后,我們通過builder.create()方法創建了Gson對象,并使用它將Json字符串轉換為Java對象。

使用上述方法可以簡單地實現Json字符串中日期時間格式與Java Date類型之間的轉換。