List of usage examples for com.fasterxml.jackson.core JsonGenerator getCodec
public abstract ObjectCodec getCodec();
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; }