آموزش و دوره های رایگان برنامه نویسی( طراحی وب و اندروید) سایتاپ سئو

در سایتاپ با آموزش های اندروید،asp.et MVC و همچنین SEO و بهینه سازی وب با همراه باشید.همچنین با اخبار روز در زمینه های امنیت و هک و اخبار روز تکنولوژی را در سایت ما میتوانید بخوانید.


آموزش رتروفیت برای ارتباط با سرور

سایتاپ سئو

رتروفیت – آموزش پیاده سازی کتابخانه رتروفیت

خب در این پست به ادامه مقاله جلسه قبل که در مورد پیاده سازی لایبراری رتروفیت میپردازیم.در جلسات قبل به معرفی رتروفیت و سپس آموزش را در یک پست جداگانه ای پرداختیم و حالا به ادامه پیاده سازی میپردازیم.

در پست قبلی جیسونی را آماده و تنظیم کردیم و حالا میخواهیم برای آن مدل بسازیم.

جیسونی که نوشته بودیم،دارای چند فیلد با نام های title, body, image_url  و همچنین یک فیلد که دارای زیر مجموعه نیز بود به اسم sender  داشتیم.ما برای ساخت مدل از داخلی ترین فیلد شروع میکنیم.

داخلی ترین جی سون یعنی sender  دارای نشانی فرستنده است.پس ما برای این جیسون داخلی یک کلاس به اسم user  میسازیم.

 

1.ساخت دیتا مدل برای کتابخانه رتروفیت


import com.google.gson.annotations.SerializedName;

import java.io.Serializable;

/**
 * Created by Masoud Karimi on 09/12/2016.
 */

public class User implements Serializable {

    @SerializedName("name")
    private String name;

    @SerializedName("last_name")
    private String lastName;

    public User(String name, String lastName) {
        this.name = name;
        this.lastName = lastName;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
   
}

 

خوب این یک کلاس است که ما درونش یه مدل برای نگه داشتن user  ها ساختیم.درون این کلاس فیلد های درونی ترین جیسون ،یعنی فیلد های درون  sender  را میریزیم.

خوب الان سوال اینجاست که SerializedName@ چیست؟

ما در واقع با این annotation به رتروفیت میگوییم که فیلدی که درون جیسون وجود دارد و عنوانش name  است را درون فیلد  name  و فیلدی که در درون جیسون last_name  نام دارد را درون فیلد ساخته شده کلاسمان که عنوانش lastname  است بریزد.

 

چند نکته در این مبحث وجود دارد.

1- اگر فیلدتان در جیسون به صورت رشته بود،در مدل نیز به صورت رشته آن را تعریف کنید و اگر به صورت boolean  بود نیز به صورت boolean   آن را تعریف کنید.

2- حتما کلاس هایتان را از Serializable   ایمپلمنت کنید.

 

خوب به ادامه مباحث رتروفیت میپردازیم.

 

2. ایجاد دیتا مدل برای دریافت user  ها در رتروفیت

حالا نیاز به یک کلاس دیگر برای دریافت post  ها داریم.

آن کلاس را به صورت زیر مینویسیم.


import java.io.Serializable;

/**
 * Created by Masoud Karimi on 09/12/2016.
 */

public class Post implements Serializable {


    @SerializedName("title")
    private String title;
   
    @SerializedName("body")
    private String body;
   
    @SerializedName("image_url")
    private String imageUrl;
   
    @SerializedName("sender")
    private User   sender;

    public Post(String title, String body, String imageUrl, User sender) {
        this.title = title;
        this.sender = sender;
        this.imageUrl = imageUrl;
        this.body = body;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }

    public String getImageUrl() {
        return imageUrl;
    }

    public void setImageUrl(String imageUrl) {
        this.imageUrl = imageUrl;
    }

    public User getSender() {
        return sender;
    }

    public void setSender(User sender) {
        this.sender = sender;
    }


}

 

 

همانطور که میبینید این کلاس نیز مانند کلاس قبلی است و تنها نکته ای که دارد همان فیلد sender  است.ما یک شی از کلاس   user  ساخته ایم و نوع این فیلد را از نوع  user  گذاشته ایم که در بالا مشاد میکنید.

 

3. ساخت دیتا مدل اصلی برای ارتباط با سرور در رتروفیت

اگر با دقت به جیسون ما توجه کرده باشین،ما دو بیرونی ترین فیلد هایمان دو تا فیلد داریم.یکی به نام error  و دیگری به نام posts .

 

حالا باید برای این بیرونی ترین فیلد ها یک کلاس اصلی بسازیم.به صورت زیر کلاس را ایجاد میکنیم:

 


import com.google.gson.annotations.SerializedName;

import java.io.Serializable;
import java.util.ArrayList;

/**
 * Created by Masoud Karimi on 09/12/2016.
 */

public class PostRetrofitModel implements Serializable{

    @SerializedName("error")
    private boolean error;

    @SerializedName("posts")
    private ArrayList<Post> posts=new ArrayList<>();

    public boolean isError() {
        return error;
    }

    public void setError(boolean error) {
        this.error = error;
    }

    public ArrayList<Post> getPosts() {
        return posts;
    }

    public void setPosts(ArrayList<Post> posts) {
        this.posts = posts;
    }
}

 

 

خوب اگر دقت کرده باشید ما نوع فیلد error  را از نوع Boolean  و نوع posts  را از نوع آرایه ای از همان کلاسی که در بالا ساختیم،ییعنی  post گذاشتیم.عبارت سریالی را نیز برابر با همان عنوانش در جیسون گذاشتیم.

نکته بسیار مهم: باید عبارت سریالی هر فیلد با عنوان آن فیلد در جیسون دقیقا یکی باشد.

 

حالا اگر دقت کرده باشید،کلاس نهایی ساخته شده ی ما با جیسون اولیه دقیقا یکی شده است.

در قسمت بعدی نحوه دریافت اطلاعات از سرور را توضیح خواهیم داد.

در این بخش با قسمت دوم:

بخش دریافت اطلاعات ازسرور با کتابخانه ی رتروفیت

 

 

مطالب پیشنهادی سایتاپ

معرفی کتابخانه ی رتروفیت برای ارتباط با سرور

 

 

دسته بندی
android
رتروفیت retrofit

برگشت به صفحه اصلی

سایتاپ درباره ما

#به نام یکتا برنامه نویس هستی


تلگرام من

alitaheri_4

بنده علی طاهری دانشجوی رشته نرم افزار و علاقه مند به برنامه نویسی هستم.اولین بار در 14 سالگی با وبلاگ نویسی پا در عرصه وب و سئو گذاشتم.در حال حاضر در برنامه نویسی اندروید با زبان جاوا و تحت وب با asp.net فعالیت دارم.همچنین بسیار علاقه مند به سئو هستم.