2014.08.05 ——— android Gson JsonDeserializer

1505 ワード

詳細
2014.08.05 ——— android Gson JsonDeserializer
Gsonは使いやすいですが、あるフィールドを特殊に処理する必要がある場合があります.面倒です.この場合、JsonDeserializerが必要です.
必要:
サーバは秒を返します.ミリ秒に変換する必要があります.
解決:
import java.lang.reflect.Type;

import com.google.xlgson.JsonDeserializationContext;
import com.google.xlgson.JsonDeserializer;
import com.google.xlgson.JsonElement;
import com.google.xlgson.JsonObject;
import com.google.xlgson.JsonParseException;

public class FavoriteRecordJsonType implements JsonDeserializer{

    @Override
    public FavoriteRecordPo deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
            throws JsonParseException {
        FavoriteRecordPo tInfo = new FavoriteRecordPo();
        JsonObject tJson = json.getAsJsonObject();
        tInfo.movietitle = tJson.get("movietitle").getAsString();
        tInfo.movieid = tJson.get("movieid").getAsLong();
        tInfo.movietype = tJson.get("movietype").getAsString();
        
        tInfo.storetime = tJson.get("storetime").getAsLong() * 1000;
        return tInfo;
    }

}

       
GsonBuilder builder = new GsonBuilder();
        builder.registerTypeAdapter(FavoriteRecordPo.class, new FavoriteRecordJsonType());
        gson = builder.create();