Это мой первый вопрос, заданный здесь, после 3 лет компьютерной науки, так голый со мной.Deserializing внутренний класс с gson возвращает null
Я хочу использовать 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
“:» и это закрывающая скобка, то Deserialize к объекту User_Profile работает.
Я не согласен. Для него было бы лучше проанализировать значение поля user_profile из объекта JSON, а не вводить лишний класс-оболочку. –
@TomG Ну и могли бы вы предоставить простой способ, как это сделать с помощью Gson? – Andremoniy
@Andremoniy Я попробовал, он по-прежнему недействителен. – nitzanwe