summaryrefslogtreecommitdiff
path: root/src/main/java/design/persistence
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/java/design/persistence/Serializers.java31
1 files changed, 25 insertions, 6 deletions
diff --git a/src/main/java/design/persistence/Serializers.java b/src/main/java/design/persistence/Serializers.java
index 246dbf1..d690633 100644
--- a/src/main/java/design/persistence/Serializers.java
+++ b/src/main/java/design/persistence/Serializers.java
@@ -13,10 +13,19 @@ 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();
@@ -86,11 +95,21 @@ 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));
+ @SuppressWarnings("rawtypes")
+ public static class MapListSerializer extends JsonSerializer<Map> {
+
+ @Override
+ public void serialize(Map value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
+ gen.writeObject(value.entrySet());
+ }
+ }
+
+ @SuppressWarnings("rawtypes")
+ public static class MapListDeserializer extends JsonDeserializer<Map> {
+
+ @Override
+ public Map deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
+ return Map.ofEntries(p.readValueAs(Map.Entry[].class));
+ }
}
}