summaryrefslogtreecommitdiff
path: root/src/data/ValidatingJsonDeserializer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/data/ValidatingJsonDeserializer.java')
-rw-r--r--src/data/ValidatingJsonDeserializer.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/data/ValidatingJsonDeserializer.java b/src/data/ValidatingJsonDeserializer.java
index f44b681..1474de3 100644
--- a/src/data/ValidatingJsonDeserializer.java
+++ b/src/data/ValidatingJsonDeserializer.java
@@ -8,6 +8,7 @@ import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
+import com.google.gson.JsonPrimitive;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -41,6 +42,11 @@ public class ValidatingJsonDeserializer<T> implements JsonDeserializer<T> {
}
throw new JsonParseException("Missing field: " + path + f.getName());
}
+ if (f.getType().equals(String.class)) {
+ if (!val.isJsonPrimitive() || !val.getAsJsonPrimitive().isString()) {
+ throw new JsonParseException("Expected string: " + path + f.getName());
+ }
+ }
tryValidateProperty(path, val, f);
// TODO: validate type?
}