public JsonElement serialize()

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;
    }