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 cn.leancloud.utils.StringUtil;
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)
// .setDateFormat(StringUtil.dateFormat)
.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(Date.class, new GsonUTCDateAdapter())
.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