Десериализация внутреннего класса с помощью gson возвращает ноль
Это мой первый раз, когда я задаю вопрос здесь, после 3 лет информатики, так что держись со мной.
Я хочу использовать Gson для десериализации моего JSON в объекты. Я определил соответствующие классы, и некоторые из объектов этого класса включены в другие объекты. При попытке десериализации всего JSON я получил нулевые значения, поэтому я начал разбивать его на части.
Я достиг точки, когда все низшие классы поддерживают себя, но при попытке десериализации в объект, который содержит экземпляр этого меньшего объекта - каждая вещь возвращается как ноль.
Мой частичный JSON:
{
"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/"
}
}
}
Класс UserProfile:
public class UserProfile {
private int pk;
private String model;
private UPfields fields = new UPfields();//i tried with and without the "new"
}
Класс UPfields:
public class UPfields {
private String photo;
private String facebook_url;
private String site_name;
private User user;
private String site_url;
}
Класс пользователя:
public class User {
private int pk;
private String model;
private Ufields fields;
}
Класс Ufields:
public class Ufields {
private String first_name;
private String last_name;
}
В основном я звоню:
Gson gson = new Gson();
UserProfile temp = gson.fromJson(json, UserProfile.class);
Так что мой временный объект содержит только нулевые значения. Я пытался изменить классы на статические, и это не работает. Объект UPfields и все нижние работают нормально.
Какие-либо предложения?? когда я удаляю
"{" user_profile ":" и закрывающая скобка, десериализация объекта user_profile работает.