通过Gson解析json数据遇到时间戳没法解析到int类型转换成字符串方法


创建
package com.example.mgson;
 
import java.lang.reflect.Type;
import java.sql.Date;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
 
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
 
public class TimestampTypeAdapter implements JsonSerializer<Timestamp>, JsonDeserializer<Timestamp>{  
 
 
    private final DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");      
    public JsonElement serialize(Timestamp ts, Type t, JsonSerializationContext jsc) {      
        String dfString = format.format(new Date(ts.getTime()));      
        return new JsonPrimitive(dfString);      
    }      
    public Timestamp deserialize(JsonElement json, Type t, JsonDeserializationContext jsc) throws JsonParseException {      
        if (!(json instanceof JsonPrimitive)) {      
            throw new JsonParseException("The date should be a string value");      
        }      
 
        try {      
            Date date = (Date) format.parse(json.getAsString());      
            return new Timestamp(date.getTime());      
        } catch (ParseException e) {      
            throw new JsonParseException(e);      
        }      
    }
 
}   
并使用
Gson gson = new GsonBuilder().registerTypeAdapter(Timestamp.class, new TimestampTypeAdapter()).setDateFormat("yyyy-MM-dd HH:mm:ss").create();
 
                Root root=gson.fromJson(result, Root.class);
                Patient patient=root.getPatient();
                Log.d("message", patient.getCreateDate()+" "+patient.getArchivesNo());

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM