下面列出了com.fasterxml.jackson.databind.SerializerProvider#isEnabled ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public final void serialize(Collection<?> value, JsonGenerator g, SerializerProvider provider) throws IOException
{
final int len = value.size();
if (len == 1) {
if (((_unwrapSingle == null) &&
provider.isEnabled(SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED))
|| (_unwrapSingle == Boolean.TRUE)) {
serializeContents(value, g, provider);
return;
}
}
g.writeStartArray(len);
serializeContents(value, g, provider);
g.writeEndArray();
}
@Override
public void serializeWithType(
CharIterable value,
JsonGenerator g,
SerializerProvider ctxt,
TypeSerializer typeSer
) throws IOException {
g.setCurrentValue(value);
WritableTypeId typeIdDef;
if (ctxt.isEnabled(SerializationFeature.WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS)) {
typeIdDef = typeSer.writeTypePrefix(g, ctxt, typeSer.typeId(value, JsonToken.START_ARRAY));
writeContentsAsArray(value, g);
} else {
typeIdDef = typeSer.writeTypePrefix(g, ctxt, typeSer.typeId(value, JsonToken.VALUE_STRING));
char[] chars = value.toArray();
g.writeString(chars, 0, chars.length);
}
typeSer.writeTypeSuffix(g, ctxt, typeIdDef);
}
@Override
public void serialize(ZonedDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException,
JsonProcessingException {
/* [modules-java8#127]: Serialization of timezone data is disabled by default, but can be
* turned on by enabling `SerializationFeature.WRITE_DATES_WITH_ZONE_ID`
*/
if (serializers.isEnabled(SerializationFeature.WRITE_DATES_WITH_ZONE_ID)) {
gen.writeFieldName(DateTimeFormatter.ISO_ZONED_DATE_TIME.format(value));
} else if (useTimestamps(serializers)) {
if (useNanos(serializers)) {
gen.writeFieldName(DecimalUtils.toBigDecimal(value.toEpochSecond(), value.getNano()).toString());
} else {
gen.writeFieldName(String.valueOf(value.toInstant().toEpochMilli()));
}
} else {
gen.writeFieldName(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(value));
}
}
@Override
public final void serialize(C value, JsonGenerator gen, SerializerProvider ctxt) throws IOException {
if (((_unwrapSingle == null) &&
ctxt.isEnabled(SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED))
|| (Boolean.TRUE.equals(_unwrapSingle))) {
if (hasSingleElement(value)) {
serializeContents(value, gen);
return;
}
}
gen.writeStartArray();
serializeContents(value, gen);
gen.writeEndArray();
}
@Override
public void serialize(CharIterable value, JsonGenerator gen, SerializerProvider provider) throws IOException {
if (provider.isEnabled(SerializationFeature.WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS)) {
gen.writeStartArray();
writeContentsAsArray(value, gen);
gen.writeEndArray();
} else {
char[] chars = value.toArray();
gen.writeString(chars, 0, chars.length);
}
}
@Override
public void serialize(DateTime value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
if (provider.isEnabled(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)) {
jgen.writeNumber(value.getMillis());
} else {
value = value.withZone(DateTimeZone.UTC);
jgen.writeString(value.toString(ISODateTimeFormat.dateTime()));
}
}
@Override
public void serialize(DateTimeRfc1123 value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
if (provider.isEnabled(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)) {
jgen.writeNumber(value.dateTime().getMillis());
} else {
jgen.writeString(value.toString()); //Use the default toString as it is RFC1123.
}
}
public boolean shouldWriteWithZoneId(SerializerProvider ctxt) {
return (_writeZoneId != null) ? _writeZoneId :
ctxt.isEnabled(SerializationFeature.WRITE_DATES_WITH_ZONE_ID);
}
private static boolean useNanos(SerializerProvider serializers) {
return serializers.isEnabled(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS);
}
private static boolean useTimestamps(SerializerProvider serializers) {
return serializers.isEnabled(SerializationFeature.WRITE_DATE_KEYS_AS_TIMESTAMPS);
}
private static boolean writeEnumsUsingIndex(SerializerProvider config) {
return config.isEnabled(SerializationFeature.WRITE_ENUMS_USING_INDEX);
}
private static boolean writeEmptyArrays(SerializerProvider config) {
return config.isEnabled(SerializationFeature.WRITE_EMPTY_JSON_ARRAYS);
}
private static boolean writeSingleElementArraysUnwrapped(SerializerProvider config) {
return config.isEnabled(SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED);
}