public Object deserialize(JsonElement json, Type typeOfT,
                JsonDeserializationContext context) {
            if (json.isJsonNull()) {
                return null;
            } else if (json.isJsonPrimitive()) {
                return handlePrimitive(json.getAsJsonPrimitive());
            } else if (json.isJsonArray()) {
                return handleArray(json.getAsJsonArray(), context);
            } else {
                return handleObject(json.getAsJsonObject(), context);
            }
        }