com.fasterxml.jackson.databind.SerializerProvider#defaultSerializeNull ( )源码实例Demo

下面列出了com.fasterxml.jackson.databind.SerializerProvider#defaultSerializeNull ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: presto   文件: AbstractTypedJacksonModule.java
@Override
public void serialize(T value, JsonGenerator generator, SerializerProvider provider)
        throws IOException
{
    if (value == null) {
        provider.defaultSerializeNull(generator);
        return;
    }

    try {
        Class<?> type = value.getClass();
        JsonSerializer<T> serializer = serializerCache.get(type, () -> createSerializer(provider, type));
        serializer.serializeWithType(value, generator, provider, typeSerializer);
    }
    catch (ExecutionException e) {
        Throwable cause = e.getCause();
        if (cause != null) {
            throwIfInstanceOf(cause, IOException.class);
        }
        throw new RuntimeException(e);
    }
}
 
源代码2 项目: onedev   文件: HibernateProxySerializer.java
@Override
public void serializeWithType(HibernateProxy value, JsonGenerator jgen,
		SerializerProvider provider, TypeSerializer typeSer)
		throws IOException, JsonProcessingException {
	Object proxiedValue = findProxied(value);
	if (proxiedValue == null) {
		provider.defaultSerializeNull(jgen);
		return;
	}
	/*
	 * This isn't exactly right, since type serializer really refers to
	 * proxy object, not value. And we really don't either know static type
	 * (necessary to know how to apply additional type info) or other
	 * things; so it's not going to work well. But... we'll do out best.
	 */
	findSerializer(provider, proxiedValue).serializeWithType(proxiedValue,
			jgen, provider, typeSer);
}
 
源代码3 项目: lams   文件: CollectionSerializer.java
public void serializeContentsUsing(Collection<?> value, JsonGenerator g, SerializerProvider provider,
        JsonSerializer<Object> ser) throws IOException
{
    Iterator<?> it = value.iterator();
    if (it.hasNext()) {
        TypeSerializer typeSer = _valueTypeSerializer;
        int i = 0;
        do {
            Object elem = it.next();
            try {
                if (elem == null) {
                    provider.defaultSerializeNull(g);
                } else {
                    if (typeSer == null) {
                        ser.serialize(elem, g, provider);
                    } else {
                        ser.serializeWithType(elem, g, provider, typeSer);
                    }
                }
                ++i;
            } catch (Exception e) {
                wrapAndThrow(provider, e, value, i);
            }
        } while (it.hasNext());
    }
}
 
源代码4 项目: joynr   文件: JoynrListSerializer.java
@Override
public void serialize(List<?> value, JsonGenerator jgen, SerializerProvider provider) throws IOException,
                                                                                      JsonGenerationException {

    jgen.writeStartArray();
    for (Object elem : value) {
        if (elem == null) {
            provider.defaultSerializeNull(jgen);
        } else {
            Class<?> clazz = elem.getClass();
            JsonSerializer<Object> serializer = serializers.get(clazz);
            if (serializer == null) {
                serializer = provider.findTypedValueSerializer(clazz, false, null);
            }
            serializer.serialize(elem, jgen, provider);
        }
    }
    jgen.writeEndArray();

}
 
源代码5 项目: joynr   文件: JoynrArraySerializer.java
@Override
public void serialize(Object[] value, JsonGenerator gen, SerializerProvider provider) throws IOException {
    gen.writeStartArray();
    for (Object elem : value) {
        if (elem == null) {
            provider.defaultSerializeNull(gen);
        } else {
            Class<?> clazz = elem.getClass();
            JsonSerializer<Object> serializer = serializers.get(clazz);
            if (serializer == null) {
                serializer = provider.findTypedValueSerializer(clazz, false, null);
            }
            serializer.serialize(elem, gen, provider);
        }
    }
    gen.writeEndArray();

}
 
源代码6 项目: clouditor   文件: BsonInstantSerializer.java
@Override
public void serialize(Instant value, JsonGenerator gen, SerializerProvider serializers)
    throws IOException {
  if (value == null) {
    serializers.defaultSerializeNull(gen);
  } else if (gen instanceof BsonGenerator) {
    ((BsonGenerator) gen).writeDateTime(new Date(value.toEpochMilli()));
  } else {
    gen.writeNumber(value.toEpochMilli());
  }
}
 
源代码7 项目: onedev   文件: HibernateProxySerializer.java
@Override
public void serialize(HibernateProxy value, JsonGenerator jgen,
		SerializerProvider provider) throws IOException,
		JsonProcessingException {
	Object proxiedValue = findProxied(value);
	// TODO: figure out how to suppress nulls, if necessary? (too late for
	// that here)
	if (proxiedValue == null) {
		provider.defaultSerializeNull(jgen);
		return;
	}
	findSerializer(provider, proxiedValue).serialize(proxiedValue, jgen,
			provider);
}
 
源代码8 项目: lams   文件: POJONode.java
@Override
public final void serialize(JsonGenerator gen, SerializerProvider serializers) throws IOException
{
    if (_value == null) {
        serializers.defaultSerializeNull(gen);
    } else if (_value instanceof JsonSerializable) {
        ((JsonSerializable) _value).serialize(gen, serializers);
    } else {
        gen.writeObject(_value);
    }
}
 
@Override
protected void serializeContents(Collection<?> value, JsonGenerator jsonGenerator,
		SerializerProvider serializerProvider) throws IOException {

	jsonGenerator.setCurrentValue(value);

	PropertySerializerMap serializers = this._dynamicSerializers;
	TypeSerializer typeSerializer = this._valueTypeSerializer;

	int index = -1;

	try {
		for (Object element : CollectionUtils.nullSafeCollection(value)) {

			index++;

			if (Objects.isNull(element)) {
				serializerProvider.defaultSerializeNull(jsonGenerator);
			}
			else {

				Class<?> elementType = element.getClass();

				JsonSerializer<Object> serializer = resolveSerializer(serializerProvider, elementType);

				if (typeSerializer != null) {
					serializer.serializeWithType(element, jsonGenerator, serializerProvider, typeSerializer);
				}
				else {
					serializer.serialize(element, jsonGenerator, serializerProvider);
				}
			}
		}
	}
	catch(Exception cause) {
		wrapAndThrow(serializerProvider, cause, value, index);
	}
}
 
源代码10 项目: EDDI   文件: IdSerializer.java
public void serialize(String s, BsonGenerator bsonGenerator, SerializerProvider serializerProvider) throws
        IOException {
    if (s == null) {
        serializerProvider.defaultSerializeNull(bsonGenerator);
        return;
    }

    if (!isValid(s)) {
        throw new IllegalArgumentException("invalid hexadecimal representation of an ObjectId: [" + s + "]");
    }

    bsonGenerator.writeObjectId(createObjectIdFromString(s));
}
 
@Override
public void serialize(T o, BsonGenerator bsonGenerator, SerializerProvider serializerProvider) throws
    IOException, JsonProcessingException {
    if (o == null) {
        serializerProvider.defaultSerializeNull(bsonGenerator);
    } else {
        bsonGenerator.writeDateTime(new Date(this.getEpochMillis.applyAsLong(o)));
    }
}
 
源代码12 项目: mongo-jackson-codec   文件: IdSerializer.java
public void serialize(String s, BsonGenerator bsonGenerator, SerializerProvider serializerProvider) throws
    IOException, JsonProcessingException {
    if (s == null) {
        serializerProvider.defaultSerializeNull(bsonGenerator);
        return;
    }

    if (!isValid(s)) {
        throw new IllegalArgumentException("invalid hexadecimal representation of an ObjectId: [" + s + "]");
    }

    bsonGenerator.writeObjectId(createObjectIdFromString(s));
}
 
源代码13 项目: moserp   文件: WithConverterSerializer.java
@Override
public void serialize(TYPE value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
    if(value == null) {
        serializers.defaultSerializeNull(gen);
    } else {
        gen.writeString(converter.convert(value));
    }
}
 
源代码14 项目: webanno   文件: BeanAsArraySerializer.java
@Override
public void serializeContents(Object value, JsonGenerator jgen, SerializerProvider provider)
    throws IOException
{
    JsonPropertyOrder order = value.getClass().getAnnotation(JsonPropertyOrder.class);
    String[] propOrder = (order == null) ? null : order.value();

    if (propOrder == null) {
        throw new IllegalStateException("Bean must declare JsonPropertyOrder!");
    }

    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);
    }
}
 
源代码15 项目: Rosetta   文件: StoredAsJsonSerializer.java
@Override
public void serialize(T value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
  ObjectMapper mapper = (ObjectMapper) jgen.getCodec();
  JsonNode tree = mapper.valueToTree(value);
  if (tree.isNull()) {
    provider.defaultSerializeNull(jgen);
  } else {
    jgen.writeString(mapper.writeValueAsString(tree));
  }
}
 
源代码16 项目: lams   文件: CollectionSerializer.java
@Override
public void serializeContents(Collection<?> value, JsonGenerator g, SerializerProvider provider) throws IOException
{
    g.setCurrentValue(value);
    if (_elementSerializer != null) {
        serializeContentsUsing(value, g, provider, _elementSerializer);
        return;
    }
    Iterator<?> it = value.iterator();
    if (!it.hasNext()) {
        return;
    }
    PropertySerializerMap serializers = _dynamicSerializers;
    final TypeSerializer typeSer = _valueTypeSerializer;

    int i = 0;
    try {
        do {
            Object elem = it.next();
            if (elem == null) {
                provider.defaultSerializeNull(g);
            } else {
                Class<?> cc = elem.getClass();
                JsonSerializer<Object> serializer = serializers.serializerFor(cc);
                if (serializer == null) {
                    if (_elementType.hasGenericTypes()) {
                        serializer = _findAndAddDynamic(serializers,
                                provider.constructSpecializedType(_elementType, cc), provider);
                    } else {
                        serializer = _findAndAddDynamic(serializers, cc, provider);
                    }
                    serializers = _dynamicSerializers;
                }
                if (typeSer == null) {
                    serializer.serialize(elem, g, provider);
                } else {
                    serializer.serializeWithType(elem, g, provider, typeSer);
                }
            }
            ++i;
        } while (it.hasNext());
    } catch (Exception e) {
        wrapAndThrow(provider, e, value, i);
    }
}
 
源代码17 项目: lams   文件: NullNode.java
@Override
public final void serialize(JsonGenerator g, SerializerProvider provider)
    throws IOException
{
    provider.defaultSerializeNull(g);
}