List of usage examples for com.fasterxml.jackson.databind JsonSerializer serialize
public abstract void serialize(T paramT, JsonGenerator paramJsonGenerator, SerializerProvider paramSerializerProvider);
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); }