Skip to content

Commit 43458fa

Browse files
committed
MultilineTextDeserializer.java
1 parent fb072be commit 43458fa

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

src/main/java/com/mengcraft/simpleorm/lib/GsonUtils.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.time.LocalDate;
2727
import java.time.LocalDateTime;
2828
import java.time.LocalTime;
29+
import java.util.Collection;
2930
import java.util.Map;
3031
import java.util.stream.Collectors;
3132
import java.util.stream.StreamSupport;
@@ -67,6 +68,7 @@ public static Gson createJsonInBuk() {
6768
public static Gson createJsonInBuk(FieldNamingPolicy policy) {
6869
GsonBuilder b = new GsonBuilder();
6970
b.registerTypeAdapterFactory(CustomTypeAdapter.newTypeHierarchyFactory(ConfigurationSerializable.class, new CustomSerializer()));
71+
b.registerTypeAdapterFactory(CustomTypeAdapter.newTypeHierarchyFactory(Collection.class, new MultilineTextDeserializer()));
7072
// jsr310s
7173
b.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeSerializer());
7274
b.registerTypeAdapter(LocalDate.class, new LocalDateSerializer());
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.mengcraft.simpleorm.lib;
2+
3+
import com.google.gson.JsonArray;
4+
import com.google.gson.JsonDeserializationContext;
5+
import com.google.gson.JsonDeserializer;
6+
import com.google.gson.JsonElement;
7+
import com.google.gson.JsonParseException;
8+
import com.google.gson.JsonPrimitive;
9+
10+
import java.lang.reflect.Type;
11+
import java.util.Collection;
12+
13+
public class MultilineTextDeserializer implements JsonDeserializer<Collection<?>> {
14+
15+
@Override
16+
public Collection<?> deserialize(JsonElement element, Type type, JsonDeserializationContext context) throws JsonParseException {
17+
if (element.isJsonPrimitive() && ((JsonPrimitive) element).isString()) {
18+
JsonArray array = new JsonArray();
19+
String[] split = element.getAsString().split("\n");
20+
for (String line : split) {
21+
array.add(new JsonPrimitive(line));
22+
}
23+
context.deserialize(array, type);
24+
}
25+
return null;
26+
}
27+
}

0 commit comments

Comments
 (0)