Deserializando la clase interna con gson devuelve null.

Esta es la primera vez que hago una pregunta aquí, después de 3 años de informática, tan desnudo conmigo.

Quiero usar Gson para deserializar mi JSON en objetos. He definido las clases apropiadas, y algunos de los objetos de esas clases están incluidos en otros objetos. Al intentar deserializar todo el JSON, obtuve valores nulos, así que comencé a separarlo.

Llegué al punto en que todas las clases inferiores se mantienen a sí mismas, pero al intentar deserializar en un objeto que contiene una instancia de ese objeto más pequeño, todo vuelve como nulo.

Mi JSON parcial:

{
  "user_profile": {
    "pk": 1,
    "model": "vcb.userprofile",
    "fields": {
      "photo": "images/users/Screen_Shot_2013-03-18_at_5.24.13_PM.png",
      "facebook_url": "https://google.com/facebook",
      "site_name": "simple food",
      "user": {
        "pk": 1,
        "model": "auth.user",
        "fields": {
          "first_name": "blue",
          "last_name": "bla"
        }
      },
      "site_url": "https://google.com/"
    }
  }
}

Clase de perfil de usuario:

public class UserProfile {
    private int pk;
    private String model;
    private UPfields fields = new UPfields();//i tried with and without the "new"
}

Clase UPfields:

public class UPfields {
    private String photo;
    private String facebook_url;
    private String site_name;
    private User user;
    private String site_url;
}

Clase de usuario:

public class User {
    private int pk;
    private String model;
    private Ufields fields;
}

Clase de Ufields:

public class Ufields {
    private String first_name;
    private String last_name;
}

En mi principal llamo:

Gson gson = new Gson();
UserProfile temp = gson.fromJson(json, UserProfile.class);

Así que mi objeto temporal solo contiene valores nulos. He intentado cambiar las clases a estática, y no funciona. El objeto UPfields y todos los inferiores funcionan bien.

¿¿Alguna sugerencia?? cuando quito el

"{" user_profile ":" y se está cerrando el corchete, el deserializar a un objeto user_profile funciona.

Respuestas a la pregunta(2)

Su respuesta a la pregunta