Desserializando classe interna com gson retorna null

Esta é a primeira vez que faço uma pergunta aqui, depois de 3 anos de ciência da computação, tão nua comigo.

Eu quero usar o Gson para desserializar meu JSON em objetos. Eu defini as classes apropriadas, e alguns desses objetos de classe estão incluídos em outros objetos. Ao tentar desserializar todo o JSON, obtive valores nulos, então comecei a desmembrá-lo.

Cheguei ao ponto em que todas as classes inferiores se posicionam sozinhas, mas ao tentar desserializar em um objeto que contém uma instância desse objeto menor - tudo retorna como nulo.

Meu 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/"
    }
  }
}

Classe UserProfile:

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

Classe UPfields:

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

Classe de Usuário:

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

Classe de Ufields:

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

Na minha principal eu chamo:

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

Portanto, meu objeto temporário contém apenas valores nulos. Eu tentei mudar as classes para estática, e isso não funciona. O objeto UPfields e todo o inferior funcionam bem.

Alguma sugestão?? quando eu remover o

"{" user_profile ":" e está fechando o colchete, o objeto desserializar para um user_profile funciona.

questionAnswers(2)

yourAnswerToTheQuestion