@Override
    public Component deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException {
        JsonObject jsonObject = jsonElement.getAsJsonObject();

        for(Component component : components) {
            if(component.isComponent(jsonObject)) {
                Component component1 = new Gson().fromJson(jsonElement, component.getClass());
                return component1;
            }
        }

        return null;
    }