in templates/java/src/main/java/com/facebook/ads/utils/CustomDataAdapter.java [45:78]
public JsonElement serialize(final CustomData src, Type typeOfSrc, final JsonSerializationContext context) {
final JsonObject serializedObject = new JsonObject();
for (Field field : src.getClass().getDeclaredFields()) {
try {
field.setAccessible(true);
SerializedName serializedName = field.getAnnotation(SerializedName.class);
// Serializing custom_data fields
if (null != serializedName && null != field.get(src)) {
// Normalizing Currency Parameter
if (field.getName() == ServerSideApiConstants.CURRENCY) {
String normalizedCurrency = ServerSideApiUtil.normalize(String.valueOf(field.get(src)), ServerSideApiConstants.CURRENCY);
serializedObject.addProperty(serializedName.value(), normalizedCurrency);
} else {
serializedObject.add(serializedName.value(),this.getGsonInstance().toJsonTree(field.get(src)));
}
}
} catch (IllegalAccessException ex) {
ex.printStackTrace();
}
}
// Adding Custom Properties to serialized object
if (null != src.getCustomProperties()) {
for (final String key : src.getCustomProperties().keySet()) {
serializedObject.addProperty(key, src.getCustomProperties().get(key));
}
}
return serializedObject;
}