Java Gson:反序列化由Jackson序列化的时间
Jackson给出的Json字符串将时间包含为{“time”:“19:31:00”} 我想使用Gson对其进行反序列化,以获取Java Gson:反序列化由Jackson序列化的时间,java,jackson,gson,deserialization,date-format,Java,Jackson,Gson,Deserialization,Date Format,Jackson给出的Json字符串将时间包含为{“time”:“19:31:00”} 我想使用Gson对其进行反序列化,以获取java.sql.Time对象 我应该在gson中设置什么日期格式 目前,我正在使用 Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create(); 首先尝试以字符串形式获取日期,然后使用新的SimpleDataFormat(“HH:mm:ss”)将其转换为日期。parse(
java.sql.Time
对象
我应该在gson中设置什么日期格式
目前,我正在使用
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create();
首先尝试以字符串形式获取日期,然后使用新的SimpleDataFormat(“HH:mm:ss”)将其转换为日期。parse(timeStr)您可以使用Gson为
java.sql.Time
注册JSONDeserializer
public static void main(String[] args) {
Gson gson = new GsonBuilder().registerTypeAdapter(Time.class, new MyTimeJsonDeserializer()).create();
MyTime time = gson.fromJson("{\"time\": \"19:31:00\"}", MyTime.class);
System.out.println(time.getTime());
}
public static class MyTime{
private Time time;
public Time getTime() {
return time;
}
public void setTime(Time time) {
this.time = time;
}
}
public static class MyTimeJsonDeserializer implements JsonDeserializer<Time>{
@Override
public Time deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
throws JsonParseException {
String time = json.getAsString();
String[] parts = time.split(":");
return new Time(Integer.parseInt(parts[0]), Integer.parseInt(parts[1]), Integer.parseInt(parts[2]));
}
}
publicstaticvoidmain(字符串[]args){
Gson Gson=new GsonBuilder().registerTypeAdapter(Time.class,new MyTimeJsonDeserializer()).create();
MyTime time=gson.fromJson(“{\'time\':\'19:31:00\'”),MyTime.class);
System.out.println(time.getTime());
}
公共静态类MyTime{
私人时间;
公共时间getTime(){
返回时间;
}
公共无效设置时间(时间){
这个时间=时间;
}
}
公共静态类MyTimeJsonDeserializer实现JsonDeserializer{
@凌驾
公共时间反序列化(JsonElement json,类型typeOfT,JsonDeserializationContext)
抛出JsonParseException{
String time=json.getAsString();
String[]parts=time.split(“:”);
返回新时间(Integer.parseInt(部分[0])、Integer.parseInt(部分[1])、Integer.parseInt(部分[2]);
}
}