آموزش GSON - قسمت سوم - Mapping nested object
سه شنبه, ۱۱ آذر ۱۳۹۹، ۰۲:۱۰ ب.ظ
تو این قسمت یه فیلد به کلاس مدل اضافه میکنم، به این صورت:
public class User {
private String name;
private String email;
private int age;
private boolean isDeveloper;
private UserAddress userAddress;
public User(String name, String email, int age, boolean isDeveloper, UserAddress userAddress) {
this.name = name;
this.email = email;
this.age = age;
this.isDeveloper = isDeveloper;
this.userAddress = userAddress;
}
}
و
public class UserAddress {
private String country;
private String city;
public UserAddress(String country, String city) {
this.country = country;
this.city = city;
}
}
serialize:
private void serialize() {
User user = new User(
"Maryam",
"Maryamflower111@yahoo.com",
28,
true,
new UserAddress(
"Iran",
"Tehran")
);
Gson gson = new Gson();
String json = gson.toJson(user);
}
deSerialize:
private void deSerialize() {
String jsonSrc = "{\n" +
" \"name\": \"Maryam goli\",\n" +
" \"email\": \"Maryamflower111@yahoo.com\",\n" +
" \"age\": 28,\n" +
" \"isDeveloper\": true,\n" +
" \"userAddress\": {\n" +
" \"country\": \"Iran\",\n" +
" \"city\": \"Tehran\"\n" +
" }\n" +
"}";
Gson gson = new Gson();
User user = gson.fromJson(jsonSrc, User.class);
}
خبر خوب اینکه لازم نیست از فیلد با جنس کلاس کاستوم نیو کنیم. فقط کافیه کلاس مدل همه رو داشته باشیم. خود GSON همه کارها رو انجام میده. و اینکه هر چند تا nested کلاس داشته باشیم جواب خواهد داد.
نکته: توی سریالایز یا دیسریالایز order فیلدها تغییر میکنه.
۹۹/۰۹/۱۱