Example usage for com.fasterxml.jackson.core JsonGenerator getCodec

List of usage examples for com.fasterxml.jackson.core JsonGenerator getCodec

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonGenerator getCodec.

Prototype

public abstract ObjectCodec getCodec();

Source Link

Document

Method for accessing the object used for writing Java object as Json content (using method #writeObject ).

Usage

From source file:org.mashti.jetson.util.JsonGeneratorUtil.java

/**
 * Writes the given {@code values} as a JSON array with the given field name and serialises each value as a provided type.
 * An {@link ObjectMapper} must be present as the {@code generator}'s {@link JsonGenerator#getCodec() codec}.
 * For each value in the given {@code values}, a type must be provided under the same index in {@code value_types}.
 * This method supports parameterised types.
 *
 * @param generator the JSON generator/*  w w w  .  ja v a 2 s . c  o  m*/
 * @param field_name the field name of the JSON array
 * @param value_types the types of the values
 * @param values the values
 * @throws IOException Signals that an I/O exception has occurred.
 */
public static void writeValuesAs(final JsonGenerator generator, final String field_name,
        final Type[] value_types, final Object[] values) throws IOException {

    generator.writeArrayFieldStart(field_name);
    if (values != null && values.length > 0) {
        final ObjectMapper mapper = (ObjectMapper) generator.getCodec();
        int i = 0;
        for (final Object value : values) {
            final Type value_type = value_types[i++];
            final ObjectWriter writer = mapper.writerWithType(JsonParserUtil.toTypeReference(value_type));
            writer.writeValue(generator, value);
        }
    }
    generator.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  w  w  . java2s .com
    }
}

From source file:com.meltmedia.jackson.crypto.EncryptedJsonSerializer.java

@Override
public void serialize(Object object, JsonGenerator generator, SerializerProvider provider)
        throws IOException, JsonProcessingException {

    StringWriter writer = new StringWriter();
    JsonGenerator nestedGenerator = generator.getCodec().getFactory().createGenerator(writer);
    if (baseSer == null) {
        provider.defaultSerializeValue(object, nestedGenerator);
    } else {//from  w w w.  j  a  va2 s. c om
        baseSer.serialize(object, nestedGenerator, provider);
    }
    nestedGenerator.close();
    String value = writer.getBuffer().toString();
    EncryptedJson encrypted = service.encrypt(value, this.annotation.encoding());
    generator.writeObject(encrypted);
}

From source file:com.github.jonpeterson.jackson.module.interceptor.JsonInterceptingSerializer.java

@Override
public void serialize(T value, JsonGenerator generator, SerializerProvider provider) throws IOException {
    // serialize the value into a byte array buffer then parse it back out into a JsonNode tree
    // TODO: find a better way to convert the value into a tree
    JsonFactory factory = generator.getCodec().getFactory();
    ByteArrayOutputStream buffer = new ByteArrayOutputStream(4096);
    JsonGenerator bufferGenerator = factory.createGenerator(buffer);
    try {/*w  ww.  j a va  2 s. c  o  m*/
        delegate.serialize(value, bufferGenerator, provider);
    } finally {
        bufferGenerator.close();
    }
    JsonNode jsonNode = factory.createParser(buffer.toByteArray()).readValueAsTree();

    // execute interceptors on node
    for (JsonInterceptor interceptor : interceptors)
        jsonNode = interceptor.intercept(jsonNode, jsonNodeFactory);

    // write node
    generator.writeTree(jsonNode);
}

From source file:com.github.jonpeterson.jackson.module.versioning.VersionedModelSerializer.java

private void doSerialize(T value, JsonGenerator generator, SerializerProvider provider,
        TypeSerializer typeSerializer) throws IOException {
    // serialize the value into a byte array buffer then parse it back out into a JsonNode tree
    // TODO: find a better way to convert the value into a tree
    JsonFactory factory = generator.getCodec().getFactory();
    ByteArrayOutputStream buffer = new ByteArrayOutputStream(4096);
    JsonGenerator bufferGenerator = factory.createGenerator(buffer);
    try {/*from ww  w .j  ava2  s .  c  o  m*/
        if (typeSerializer != null)
            delegate.serializeWithType(value, bufferGenerator, provider, typeSerializer);
        else
            delegate.serialize(value, bufferGenerator, provider);
    } finally {
        bufferGenerator.close();
    }

    ObjectNode modelData = factory.createParser(buffer.toByteArray()).readValueAsTree();

    // set target version to @SerializeToVersion's value, @JsonVersionModel's defaultSerializeToVersion, or
    //   @JsonVersionModel's currentVersion in that order
    String targetVersion = null;
    if (serializeToVersionProperty != null) {
        targetVersion = (String) serializeToVersionProperty.getAccessor().getValue(value);
        modelData.remove(serializeToVersionProperty.getName());
    }
    if (targetVersion == null)
        targetVersion = jsonVersionedModel.defaultSerializeToVersion();
    if (targetVersion.isEmpty())
        targetVersion = jsonVersionedModel.currentVersion();

    // convert model data if there is a converter and targetVersion is different than the currentVersion or if
    //   alwaysConvert is true
    if (converter != null && (jsonVersionedModel.alwaysConvert()
            || !targetVersion.equals(jsonVersionedModel.currentVersion())))
        modelData = converter.convert(modelData, jsonVersionedModel.currentVersion(), targetVersion,
                JsonNodeFactory.instance);

    // add target version to model data if it wasn't the version to suppress
    if (!targetVersion.equals(jsonVersionedModel.versionToSuppressPropertySerialization()))
        modelData.put(jsonVersionedModel.propertyName(), targetVersion);

    // write node
    generator.writeTree(modelData);
}

From source file:com.zenesis.qx.remote.SimpleQueue.java

@Override
public synchronized void serialize(JsonGenerator gen, SerializerProvider sp)
        throws IOException, JsonProcessingException {
    gen.writeStartArray();/*  w w w.j  av a  2s  . co  m*/
    while (!values.isEmpty()) {
        CommandId id = values.keySet().iterator().next();
        Object data = values.remove(id);

        if (id.type == CommandType.DEFINE) {
            ProxyType type = (ProxyType) id.object;
            ProxySessionTracker tracker = ((ProxyObjectMapper) gen.getCodec()).getTracker();
            if (tracker.isTypeDelivered(type))
                continue;
        }

        gen.writeStartObject();
        gen.writeStringField("type", id.type.remoteId);
        if (id.object != null)
            gen.writeObjectField("object", id.object);
        if (id.name != null)
            gen.writeObjectField("name", id.name);
        if (data != null)
            gen.writeObjectField("data", data);
        gen.writeEndObject();
    }
    gen.writeEndArray();
    values.clear();
    needsFlush = false;
}