cn.leancloud.gson.GsonWrapper Maven / Gradle / Ivy
package cn.leancloud.gson;
import cn.leancloud.*;
import cn.leancloud.json.JSONObject;
import cn.leancloud.ops.*;
import cn.leancloud.service.AppAccessEndpoint;
import cn.leancloud.sms.LCCaptchaDigest;
import cn.leancloud.sms.LCCaptchaValidateResult;
import cn.leancloud.upload.FileUploadToken;
import com.google.gson.*;
import com.google.gson.internal.Primitives;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Modifier;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class GsonWrapper {
static final ObjectDeserializer objectDeserializer = new ObjectDeserializer();
static final BaseOperationAdapter baseOperationAdapter = new BaseOperationAdapter();
static final JSONObjectAdapter jsonObjectAdapter = new JSONObjectAdapter();
static final JSONArrayAdapter jsonArrayAdapter = new JSONArrayAdapter();
static final Gson gson = new GsonBuilder().serializeNulls()
.excludeFieldsWithModifiers(Modifier.STATIC, Modifier.TRANSIENT, Modifier.VOLATILE)
.registerTypeAdapter(LCObject.class, objectDeserializer)
.registerTypeAdapter(LCUser.class, objectDeserializer)
.registerTypeAdapter(LCFile.class, objectDeserializer)
.registerTypeAdapter(LCRole.class, objectDeserializer)
.registerTypeAdapter(LCStatus.class, objectDeserializer)
.registerTypeAdapter(LCInstallation.class, objectDeserializer)
.registerTypeAdapter(LCFriendshipRequest.class, objectDeserializer)
.registerTypeAdapter(LCFriendship.class, objectDeserializer)
.registerTypeAdapter(BaseOperation.class, baseOperationAdapter)
.registerTypeAdapter(AddOperation.class, baseOperationAdapter)
.registerTypeAdapter(AddRelationOperation.class, baseOperationAdapter)
.registerTypeAdapter(AddUniqueOperation.class, baseOperationAdapter)
.registerTypeAdapter(BitAndOperation.class, baseOperationAdapter)
.registerTypeAdapter(BitOrOperation.class, baseOperationAdapter)
.registerTypeAdapter(BitXOROperation.class, baseOperationAdapter)
.registerTypeAdapter(CompoundOperation.class, baseOperationAdapter)
.registerTypeAdapter(DecrementOperation.class, baseOperationAdapter)
.registerTypeAdapter(DeleteOperation.class, baseOperationAdapter)
.registerTypeAdapter(IncrementOperation.class, baseOperationAdapter)
.registerTypeAdapter(NumericOperation.class, baseOperationAdapter)
.registerTypeAdapter(RemoveOperation.class, baseOperationAdapter)
.registerTypeAdapter(RemoveRelationOperation.class, baseOperationAdapter)
.registerTypeAdapter(SetOperation.class, baseOperationAdapter)
.registerTypeAdapter(GsonObject.class, jsonObjectAdapter)
.registerTypeAdapter(JSONObject.class, jsonObjectAdapter)
.registerTypeAdapter(GsonArray.class, jsonArrayAdapter)
.registerTypeAdapter(FileUploadToken.class, new FileUploadTokenAdapter())
.registerTypeAdapter(AppAccessEndpoint.class,
new GeneralObjectAdapter<>(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES,
TypeToken.get(AppAccessEndpoint.class)))
.registerTypeAdapter(LCCaptchaDigest.class,
new GeneralObjectAdapter<>(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES,
TypeToken.get(LCCaptchaDigest.class)))
.registerTypeAdapter(LCCaptchaValidateResult.class,
new GeneralObjectAdapter<>(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES,
TypeToken.get(LCCaptchaValidateResult.class)))
.registerTypeAdapter(new TypeToken © 2015 - 2025 Weber Informatics LLC | Privacy Policy