jsonMapperBuilderFromProperties function
JsonMapperBuilder
jsonMapperBuilderFromProperties(
- Environment environment, {
- BeanIntrospector? introspector,
- Iterable<
JsonSerializer< serializers = const [],Object> > - Iterable<
JsonDeserializer< deserializers = const [],Object> > - Iterable<
JsonModule> modules = const [],
The JsonMapperBuilder that objectMapperFromProperties would build,
with the spring.json.* properties of environment applied.
Use it to change a setting before building the mapper; the auto-configuration hands this builder to the JsonMapperBuilderCustomizer beans. The parameters are those of objectMapperFromProperties.
Implementation
JsonMapperBuilder jsonMapperBuilderFromProperties(
Environment environment, {
BeanIntrospector? introspector,
Iterable<JsonSerializer<Object>> serializers = const [],
Iterable<JsonDeserializer<Object>> deserializers = const [],
Iterable<JsonModule> modules = const [],
}) {
_warnUnsupportedKeys(environment);
final json = bindBootProperties(environment, JsonProperties());
final builder = JsonMapperBuilder()
..propertyNamingStrategy(
PropertyNamingStrategy.parse(json.propertyNamingStrategy),
)
..defaultPropertyInclusion(json.defaultPropertyInclusion)
..defaultTimeZone(json.timeZone)
..addSerializers(serializers)
..addDeserializers(deserializers)
..addModules(modules);
if (introspector != null) {
builder.introspector(introspector);
}
final deserialization = json.deserialization;
final serialization = json.serialization;
final dateTime = json.datatype.datetime;
builder
..configure(
DeserializationFeature.failOnUnknownProperties,
deserialization.failOnUnknownProperties,
)
..configure(
DeserializationFeature.acceptFloatAsInt,
deserialization.acceptFloatAsInt,
)
..configure(
DeserializationFeature.failOnNullForPrimitives,
deserialization.failOnNullForPrimitives,
)
// The Boot 4 key (`datatype.datetime`) wins over the Boot 3 one.
..configure(
DateTimeFeature.writeDatesAsTimestamps,
dateTime.writeDatesAsTimestamps ?? serialization.writeDatesAsTimestamps,
)
..configure(
DateTimeFeature.writeDurationsAsTimestamps,
dateTime.writeDurationsAsTimestamps ??
serialization.writeDurationsAsTimestamps,
)
..configure(
DateTimeFeature.writeDateTimestampsAsNanoseconds,
dateTime.writeDateTimestampsAsNanoseconds ??
serialization.writeDateTimestampsAsNanoseconds,
)
..configure(
DateTimeFeature.readDateTimestampsAsNanoseconds,
dateTime.readDateTimestampsAsNanoseconds ??
deserialization.readDateTimestampsAsNanoseconds,
)
..configure(SerializationFeature.indentOutput, serialization.indentOutput)
..configure(
MapperFeature.sortPropertiesAlphabetically,
json.mapper.sortPropertiesAlphabetically,
)
..configure(
MapperFeature.defaultViewInclusion,
json.mapper.defaultViewInclusion,
);
return builder;
}