public Metadata deserialize(JsonElement element, Type type,
JsonDeserializationContext context) throws JsonParseException {
final JsonObject obj = element.getAsJsonObject();
Metadata m = new Metadata();
for (Map.Entry<String, JsonElement> entry : obj.entrySet()){
String key = entry.getKey();
JsonElement v = entry.getValue();
if (v.isJsonPrimitive()){
m.set(key, v.getAsString());
} else if (v.isJsonArray()){