public GsonSerializerBuilder addDeserializationExclusionStrategy(ExclusionStrategy strategy) { return new GsonSerializerBuilder(builder .addDeserializationExclusionStrategy(strategy)); }
/** * Instantiates a new AttachmentDeserializer. */ public AttachmentDeserializer() { GsonBuilder builder = new GsonBuilder(); builder.addDeserializationExclusionStrategy(new SkipDeserializationAnnotationExclusionStrategy()); delegateGson = builder.create(); }
/** * * Converts the given POJO and will skip the given fields while doing so. * If prettyPrint is true, the output will be nicely formatted. * * @param obj * @param excludedFields * @param prettyPrint * @return */ public String toJsonAndSkipCertainFields(Object obj, final List<String> excludedFields, boolean prettyPrint) { ExclusionStrategy strategy = new ExclusionStrategy() { public boolean shouldSkipField(FieldAttributes f) { if (excludedFields.contains(f.getName())) { return true; } return false; } public boolean shouldSkipClass(Class<?> clazz) { return false; } }; GsonBuilder builder = new GsonBuilder().addSerializationExclusionStrategy(strategy) .addDeserializationExclusionStrategy(strategy); if (prettyPrint) builder.setPrettyPrinting(); return builder.create().toJson(obj); }
public static Gson createGson(Policy policy) { Gson gson = cache.get(policy); if (gson != null) { return gson; } gson = createGsonBuilder() .addDeserializationExclusionStrategy(new AnnotatedStrategy(policy)) .addSerializationExclusionStrategy(new AnnotatedStrategy(policy)) .create(); cache.put(policy, gson); return gson; }
return false; }).addDeserializationExclusionStrategy(new ExclusionStrategy() { @Override public boolean shouldSkipField(FieldAttributes fieldAttributes) {
private static GsonBuilder getInstance() { if (instance == null) { instance = new GsonBuilder(); instance.registerTypeAdapter(Annotation.class, new AnnotationTypeAdapter()); instance.registerTypeAdapter(Option.class, new UpmOptionAdapter()); instance.registerTypeAdapter(AtomicInteger.class, new AtomicIntegerTypeAdapter()); instance.registerTypeAdapter(AtomicLong.class, new AtomicLongTypeAdapter()); instance.registerTypeAdapterFactory(new ClassTypeAdapterFactory()); instance.addDeserializationExclusionStrategy(new ExclusionStrategy() { @Override public boolean shouldSkipClass(Class<?> clazz) { return clazz.equals(Serializable.class); } @Override public boolean shouldSkipField(FieldAttributes f) { return false; } }); } return instance; } }
@Provides @PerApplication Retrofit provideRetrofit() { String endpointUrl = BuildConfig.apiEndpointUrl; Gson gson = new GsonBuilder() .setDateFormat(API_DATE_FORMAT) .setFieldNamingPolicy(API_JSON_NAMING_POLICY) .registerTypeAdapter(ResponseWrapper.class, new ResponseDeserializer()) .addSerializationExclusionStrategy(new JsonExclusionStrategy()) .addDeserializationExclusionStrategy(new JsonExclusionStrategy()) .create(); GsonConverterFactory gsonConverterFactory = GsonConverterFactory.create(gson); OkHttpClient client = new OkHttpClient(); HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); logging.setLevel(HttpLoggingInterceptor.Level.BODY); client.interceptors().add(logging); Retrofit retrofit = new Retrofit.Builder() .baseUrl(endpointUrl) .client(client) .addConverterFactory(gsonConverterFactory) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); return retrofit; }