Example usage for com.fasterxml.jackson.databind JsonSerializer serialize

List of usage examples for com.fasterxml.jackson.databind JsonSerializer serialize

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind JsonSerializer serialize.

Prototype

public abstract void serialize(T paramT, JsonGenerator paramJsonGenerator,
            SerializerProvider paramSerializerProvider);

Source Link

Usage

From source file:org.mongojack.internal.util.SerializationUtils.java

private static Object serializeUpdateField(Object value, JsonSerializer serializer,
        SerializerProvider serializerProvider, String op, String field) {
    BsonObjectGenerator objectGenerator = new BsonObjectGenerator();
    try {/*  w w  w  .jav a  2  s. c  om*/
        serializer.serialize(value, objectGenerator, serializerProvider);
    } catch (IOException e) {
        throw new MongoJsonMappingException(
                "Error serializing value in DBUpdate operation " + op + " field " + field, e);
    }
    return objectGenerator.getValue();
}

From source file:io.coala.json.DynaBean.java

/**
 * @param <T>//ww  w.  j a va2 s .c  o m
 * @param wrapperType
 * @return
 */
static final <T> JsonSerializer<T> createJsonSerializer(final Class<T> type) {
    return new JsonSerializer<T>() {
        @Override
        public void serialize(final T value, final JsonGenerator jgen, final SerializerProvider serializers)
                throws IOException, JsonProcessingException {
            // non-Proxy objects get default treatment
            if (!Proxy.isProxyClass(value.getClass())) {
                @SuppressWarnings("unchecked")
                final JsonSerializer<T> ser = (JsonSerializer<T>) serializers
                        .findValueSerializer(value.getClass());
                if (ser != this)
                    ser.serialize(value, jgen, serializers);
                else
                    LOG.warn("Problem serializing: {}", value);
                return;
            }

            // BeanWrapper gets special treatment
            if (DynaBeanInvocationHandler.class.isInstance(Proxy.getInvocationHandler(value))) {
                final DynaBeanInvocationHandler handler = (DynaBeanInvocationHandler) Proxy
                        .getInvocationHandler(value);

                // Wrapper extensions get special treatment
                if (Wrapper.class.isAssignableFrom(handler.type)) {
                    final Object wrap = handler.bean.get("wrap");
                    serializers.findValueSerializer(wrap.getClass(), null).serialize(wrap, jgen, serializers);
                    return;
                }
                // Config (Accessible) extensions get special treatment
                else if (Accessible.class.isAssignableFrom(handler.type)) {
                    final Map<String, Object> copy = new HashMap<>(handler.bean.any());
                    final Accessible config = (Accessible) handler.config;
                    for (String key : config.propertyNames())
                        copy.put(key, config.getProperty(key));
                    serializers.findValueSerializer(copy.getClass(), null).serialize(copy, jgen, serializers);
                    return;
                } else if (Config.class.isAssignableFrom(handler.type))
                    throw new JsonGenerationException("BeanWrapper should extend " + Accessible.class.getName()
                            + " required for serialization: " + Arrays.asList(handler.type.getInterfaces()),
                            jgen);

                // BeanWrappers that do not extend OWNER API's Config
                serializers.findValueSerializer(handler.bean.getClass(), null).serialize(handler.bean, jgen,
                        serializers);
                return;
            }

            // Config (Accessible) gets special treatment
            if (Accessible.class.isInstance(value)) {
                final Accessible config = (Accessible) value;
                final Properties entries = new Properties();
                for (String key : config.propertyNames())
                    entries.put(key, config.getProperty(key));
                serializers.findValueSerializer(entries.getClass(), null).serialize(entries, jgen, serializers);
                return;
            }

            if (Config.class.isInstance(value))
                throw new JsonGenerationException("Config should extend " + Accessible.class.getName()
                        + " required for serialization: " + Arrays.asList(value.getClass().getInterfaces()),
                        jgen);

            throw new JsonGenerationException(
                    "No serializer found for proxy of: " + Arrays.asList(value.getClass().getInterfaces()),
                    jgen);
        }
    };
}

From source file:org.emfjson.jackson.databind.ser.ResourceSerializer.java

private void serializeOne(EObject object, JsonGenerator jg, SerializerProvider provider) throws IOException {
    final JavaType type = factory2.constructSimpleType(object.eClass());
    final JsonSerializer<Object> serializer = provider.findValueSerializer(type);

    if (serializer != null) {
        serializer.serialize(object, jg, provider);
    }/* ww  w.ja  v  a2 s. c  o m*/
}

From source file:de.escalon.hypermedia.spring.de.escalon.hypermedia.spring.jackson.ResourcesSerializer.java

@Override
public void serialize(Resources value, JsonGenerator jgen, SerializerProvider provider) throws IOException {

    final SerializationConfig config = provider.getConfig();
    JavaType javaType = config.constructType(value.getClass());

    JsonSerializer<Object> serializer = BeanSerializerFactory.instance.createSerializer(provider, javaType);

    jgen.writeStartObject();/*w w  w.  ja  va 2  s. com*/
    serializer.serialize(value, jgen, provider);
    jgen.writeEndObject();

}

From source file:de.tudarmstadt.ukp.clarin.webanno.brat.message.BeanAsArraySerializer.java

@Override
public void serializeContents(Object value, JsonGenerator jgen, SerializerProvider provider)
        throws IOException, JsonGenerationException {
    JsonPropertyOrder order = value.getClass().getAnnotation(JsonPropertyOrder.class);
    String[] propOrder = (order == null) ? null : order.value();

    if (propOrder == null) {
        throw new IllegalStateException("Bean must declare JsonPropertyOrder!");
    }//from w  w  w  . j  a v  a  2s  .co m

    if (propOrder.length == 0) {
        return;
    }

    int i = 0;
    try {
        do {
            Field field = value.getClass().getDeclaredField(propOrder[i]);
            ReflectionUtils.makeAccessible(field);
            Object elem = field.get(value);
            if (elem == null) {
                provider.defaultSerializeNull(jgen);
            } else {
                Class<?> cc = elem.getClass();
                JsonSerializer<Object> serializer = provider.findValueSerializer(cc, null);
                serializer.serialize(elem, jgen, provider);
            }
            ++i;
        } while (i < propOrder.length);
    } catch (Exception e) {
        // [JACKSON-55] Need to add reference information
        wrapAndThrow(provider, e, value, i);
    }
}

From source file:net.nullschool.grains.jackson.datatype.GrainSerializer.java

private void serializeExtension(String key, Object value, JsonGenerator jgen, SerializerProvider provider)
        throws IOException {

    if (value != null) {
        // This extension's value is not the default value _null_, so write it to the stream.
        jgen.writeFieldName(key);// w w w. j av  a  2s.  co  m
        JsonSerializer<Object> serializer = findLateSerializer(value.getClass(), provider);
        serializer.serialize(value, jgen, provider);
    }
}

From source file:be.dnsbelgium.rdap.jackson.ContactSerializer.java

@Override
public void serialize(Contact contact, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
        throws IOException {
    jsonGenerator.writeStartArray();//from   ww w.  ja  v a 2  s. c  o m
    // start write version
    jsonGenerator.writeStartArray();
    jsonGenerator.writeString("version");
    jsonGenerator.writeStartObject();
    jsonGenerator.writeEndObject();
    jsonGenerator.writeString("text");
    jsonGenerator.writeString("4.0");
    jsonGenerator.writeEndArray();
    // end write version
    for (Contact.Property property : contact.getProperties()) {
        // start write property
        jsonGenerator.writeStartArray();
        // start write property name
        String key = (property.getGroup() == null) ? property.getName()
                : property.getGroup() + "." + property.getName();
        jsonGenerator.writeString(property.getName().toLowerCase(Locale.ENGLISH));
        // end write property name
        // start write property parameters
        jsonGenerator.writeStartObject();
        if (property.getGroup() != null) {
            jsonGenerator.writeFieldName("group");
            jsonGenerator.writeString(property.getGroup());
        }
        if (property.getParameters() != null) {

            Iterator<String> it = property.getParameters().keys();
            while (it.hasNext()) {
                String k = it.next();
                if (k.equalsIgnoreCase("value")) {
                    continue;
                }
                Set<String> values = property.getParameters().get(k);
                if (values.size() == 0) {
                    // no parameters for this property, skip this step
                    continue;
                }
                jsonGenerator.writeFieldName(k.toLowerCase(Locale.ENGLISH));
                if (values.size() == 1) {
                    jsonGenerator.writeString(values.toArray(new String[values.size()])[0]);
                    continue;
                }
                // start write all property parameter values (array)
                jsonGenerator.writeStartArray();
                for (String str : property.getParameters().get(k)) {
                    jsonGenerator.writeString(str);
                }
                jsonGenerator.writeEndArray();
                // end write all property parameter values (array)

            }
        }
        jsonGenerator.writeEndObject();
        // end write property parameters
        // start write property type
        String value = "text";
        if (property.getParameters() != null) {
            Set<String> types = property.getParameters().get("VALUE");
            if (types != null) {
                value = types.iterator().next();
            }
        }
        jsonGenerator.writeString(value);
        // end write property type
        // start write property value
        JsonSerializer s = serializerProvider.findValueSerializer(property.getValue().getClass(), null);
        s.serialize(property.getValue(), jsonGenerator, serializerProvider);
        // end write property value
        jsonGenerator.writeEndArray();
        // end write property
    }
    jsonGenerator.writeEndArray();
}

From source file:net.logstash.logback.marker.ObjectFieldsAppendingMarker.java

@Override
public void writeTo(JsonGenerator generator) throws IOException {
    if (object != null) {
        ObjectMapper mapper = (ObjectMapper) generator.getCodec();
        JsonSerializer<Object> serializer = getBeanSerializer(mapper);
        if (serializer.isUnwrappingSerializer()) {
            serializer.serialize(object, generator, getSerializerProvider(mapper));
        }/*from   w  ww .  jav a2  s  .c o  m*/
    }
}

From source file:io.airlift.event.client.JsonEventSerializer.java

public <T> void serialize(T event, JsonGenerator jsonGenerator) throws IOException {
    checkNotNull(event, "event is null");
    checkNotNull(jsonGenerator, "jsonGenerator is null");

    JsonSerializer<T> serializer = getSerializer(event);
    if (serializer == null) {
        throw new InvalidEventException("Event class [%s] has not been registered as an event",
                event.getClass().getName());
    }//www.  j a  v a 2s .c  o  m

    serializer.serialize(event, jsonGenerator, null);
}

From source file:com.proofpoint.event.client.JsonEventSerializer.java

public <T> void serialize(T event, @Nullable String token, JsonGenerator jsonGenerator) throws IOException {
    checkNotNull(event, "event is null");
    checkNotNull(jsonGenerator, "jsonGenerator is null");

    JsonSerializer<T> serializer = getSerializer(event, token);
    if (serializer == null) {
        throw new InvalidEventException("Event class [%s] has not been registered as an event",
                event.getClass().getName());
    }/*from  www. j  a  va  2 s  .c  om*/

    serializer.serialize(event, jsonGenerator, null);
}