Example usage for com.fasterxml.jackson.databind SerializerProvider defaultSerializeValue

List of usage examples for com.fasterxml.jackson.databind SerializerProvider defaultSerializeValue

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind SerializerProvider defaultSerializeValue.

Prototype

public final void defaultSerializeValue(Object paramObject, JsonGenerator paramJsonGenerator) 

Source Link

Usage

From source file:com.unboundid.scim2.common.utils.JsonRefBeanSerializer.java

/**
 * {@inheritDoc}/*from   w  ww  .  ja  v a2s . c  om*/
 */
@Override
public void serialize(final Object value, final JsonGenerator gen, final SerializerProvider serializers)
        throws IOException {
    Class<?> clazz = value.getClass();
    try {
        gen.writeStartObject();
        Collection<PropertyDescriptor> propertyDescriptors = SchemaUtils.getPropertyDescriptors(clazz);
        for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
            Field field = SchemaUtils.findField(clazz, propertyDescriptor.getName());
            if (field == null) {
                continue;
            }
            field.setAccessible(true);
            Object obj = field.get(value);
            if (obj instanceof JsonReference) {
                JsonReference<?> reference = (JsonReference<?>) obj;
                if (reference.isSet()) {
                    gen.writeFieldName(field.getName());
                    serializers.defaultSerializeValue(reference.getObj(), gen);
                }
            }
        }
        gen.writeEndObject();
    } catch (IntrospectionException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }

}