Gson to Model containing several return types for one key
Iterating through an entrySet()

If what you really want is to put all the JSON objects into a success map, rather than overwriting each of them with every iteration, there's a way to stream it:

Map&lt;String, Object&gt; map = object.entrySet().stream()
                                .collect(Collectors.toMap(Entry::getKey, 
                                            entry -&gt; (Object) entry.getValue()));
result.setSuccess(map);


In any case, a more fluent implementation of HashMap&lt;&gt;() {{ ... }} is to use Collections.singletonMap():

object.entrySet().forEach(entry -&gt; { 
    Map&lt;String, Object&gt; map = Collections.singletonMap(entry.getKey(), entry.getValue()); 
    // ...
});


Modeling

You can consider have a more domain-based modeling of the successful results, instead of a simple Map&lt;String, Object&gt; in your HueResponse. For example, consider a Group of Action objects that have a state consisting of enabled (aka on), effect and hue? That seems to adhere closer to the results, giving you a more meaningful application.