آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

طبقه بندی موضوعی

آموزش 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 فیلدها تغییر میکنه.

موافقین ۰ مخالفین ۰ ۹۹/۰۹/۱۱
میم دال

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی