@Override
    public Dashboard deserialize(JsonElement element, Type type, JsonDeserializationContext context)
        throws JsonParseException
    {
        JsonObject obj = element.getAsJsonObject();
        JsonElement dashboard = obj.get("dashboard");
        if(dashboard != null && dashboard.isJsonObject())
            return gson.fromJson(dashboard, Dashboard.class);
        return gson.fromJson(element, Dashboard.class);
    }
@ Override public Dashboard deserialize ( JsonElement element , Type type , JsonDeserializationContext context ) throws JsonParseException { JsonObject obj = element . getAsJsonObject ( ) ; JsonElement dashboard = obj . get ( "dashboard" ) ; if ( dashboard != null && dashboard . isJsonObject ( ) ) return gson . fromJson ( dashboard , Dashboard . class ) ; return gson . fromJson ( element , Dashboard . class ) ; }
Gson invokes this call-back method during deserialization when it encounters a field of the specified type.
@param element The Json data being deserialized
@param type The type of the Object to deserialize to
@param context The JSON deserialization context
@return The dashboard