From 00d14d387bcb5a788195326c6893f729a9ee863d Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Sat, 10 May 2014 01:06:58 +0200 Subject: Detect wrong type for string --- src/data/ValidatingJsonDeserializer.java | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/data/ValidatingJsonDeserializer.java') 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 implements JsonDeserializer { } 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? } -- cgit v1.2.1