Am I doing something wrong here?
You do what you most do not need. Moreover, this is really wrong, because it breaks for everything except numbers.
IIRC, Gson deserializers for some built-in types (including Object) do not work.
Whenever you use something like List<Integer>json will be read as int, so everything is fine.
, Something<Object> Integer, Double , , . , , Something .