diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2025-11-16 02:22:34 -0500 |
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2025-11-16 02:22:34 -0500 |
| commit | 2001073e2353e4e9824473cf712102cec3af6a11 (patch) | |
| tree | 091e0ba975be4d9b13c8323d49862ac87e22b84d /src/main/java/design/persistence/Serializers.java | |
| parent | 5bb349e46fbe9c63ad15379703e0d1371bae0081 (diff) | |
| parent | a667071453840878eb9dba07c5fd96559f79ca57 (diff) | |
| download | designproject-design-6-2001073e2353e4e9824473cf712102cec3af6a11.tar.gz designproject-design-6-2001073e2353e4e9824473cf712102cec3af6a11.tar.bz2 designproject-design-6-2001073e2353e4e9824473cf712102cec3af6a11.zip | |
Merge branch 'main' into league-play-refactoring
# Conflicts:
# src/main/java/design/persistence/JSONLeagueDatabase.java
# src/main/java/design/persistence/JSONPersonalDatabase.java
# src/main/java/design/persistence/Serializers.java
Diffstat (limited to 'src/main/java/design/persistence/Serializers.java')
| -rw-r--r-- | src/main/java/design/persistence/Serializers.java | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/src/main/java/design/persistence/Serializers.java b/src/main/java/design/persistence/Serializers.java index d00dcbf..d690633 100644 --- a/src/main/java/design/persistence/Serializers.java +++ b/src/main/java/design/persistence/Serializers.java @@ -1,21 +1,31 @@ package design.persistence; +import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.util.DefaultIndenter; import com.fasterxml.jackson.core.util.DefaultPrettyPrinter; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.*; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.module.paramnames.ParameterNamesModule; import design.model.Course; import design.model.Golfer; import design.model.League; import java.io.IOException; import java.util.Map; +import java.time.LocalDateTime; +import java.util.List; public class Serializers { + public static void configureMapper(ObjectMapper mapper) { + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY); + mapper.registerModule(new ParameterNamesModule(JsonCreator.Mode.PROPERTIES)); + mapper.registerModule(new JavaTimeModule()); + mapper.configOverride(List.class).setSetterInfo(JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY)); + } + public static class CustomPrettyPrinter extends DefaultPrettyPrinter { public CustomPrettyPrinter() { super._arrayIndenter = new DefaultIndenter(); @@ -78,6 +88,13 @@ public class Serializers { } } + public static class DateTimeStringSerializer extends JsonSerializer<LocalDateTime> { + @Override + public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException { + gen.writeString(value.toString()); + } + } + @SuppressWarnings("rawtypes") public static class MapListSerializer extends JsonSerializer<Map> { |
