通過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