آموزش Json در اندروید با کتابخانه Gson

جولای 27, 2018| اندروید ریور
آموزش Json در اندروید با استفاده از کتابخانه Gson | مارکت سورس اندروید ریور

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

با استفاده از Json میتوانید داده هایی را در قالب Package دریافت کنید و آن ها را تجزیه یا Parse کنید تا بتوانید از آنها استفاده کنید وهمچنین برعکس. راهی سریع و بهینه برای تبادل اطلاعات.

در زیر میتوانید محصول رایگانی که در مارکت اندروید ریور منتشر شده است را برای درک بهتر عملکرد json مورد بررسی قرار دهید :


رایگان – دانلود

در اینجا ما لایبرری Gson را معرفی میکنیم که کار تبادل اطلاعات بر اساس Json را راحتتر میکند. با استفاده از این لایبرری میتوانید با سهولت بیشتر جی سون را در پروژه خود پیاده کنید.

 

نحوه کار با JSON با استفاده از کتابخانه Gson

برای اضافه کردن لایبرری ابتدا باید با دستور زیر این کتابخانه را به پروژه خود اضافه کنید :

    compile 'com.google.code.gson:gson:2.8.5'

حالا پروژه خود را مجددا Sync کنید تا لایبرری به پروژه شما اضافه شود.

از مهم ترین Class های لایبرری Gson میتوان به موارد زیر اشاره کرد :

JSONParser : مسئول تجزیه پکیج تکست جی سون است.
JSONObject : مسئول ذخیره سازی شی جاوا در نوشتار جی سون است. به عنوان HashMap گسترش داده می شود میتواند آن را به فایل نوشتاری جیسون انکود کرد.
JSONArray : برای گسترش لیست آرایه ArrayList کاربرد دارد و یک کالکشن یا مجموعه را نمایندگی می کند . و رابط JSONAware و JSONStreamAware بوده و آنها را پیاده سازی میکند.
JSONValue : این کلاس توسط یک متد جیسون را به String جاوا تجزیه می کند . برای این کار از کلاسی که در ابتدا ذکر کردیم یعنی JSONParser استفاده می کند . همچنین این کلاس کاراکتر های کنترلی مانند Quotes, \, /, \r, \n, \b, \f, \t و دیگر کاراکتر های کنترلی را پشتیبانی می کند.
JSONAware : این کلاس برای خروجی اینترفیس فرم جیسون مورد استفاده قرار می گیرد.

همچنین بخوانید :  آموزش بازکردن صفحه وب در وب ویو اندروید

انجام تجزیه Json یا Parse Json
این نمونه آموزش چگونگی تجزیه متغییر جیسون را شرح می دهد


import java.io.IOException;
import java.net.URL;
 
import org.apache.commons.io.IOUtils;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
import org.json.simple.parser.ParseException;
 
public class ParseJson1 {
 
    public static void main(String[] args) {
        String url = "JSON ADDRESS";
        /*
         * {"title":"IMPORT YOUR ADDRESS","message":"","errors":[],"total" : "161","total_pages":81,"page":1,"limit":"2",
         * "dataset":
         * [{"genre_id": "1","genre_parent_id":"38","genre_title":"Avant-Garde" ,"genre_handle": "Avant-Garde","genre_color":"#006666"},
         * {"genre_id":"2","genre_parent_id" :null,"genre_title":"International","genre_handle":"International","genre_color":"#CC3300"}]}
         */
        try {
            String genreJson = IOUtils.toString(new URL(url));
            JSONObject genreJsonObject = (JSONObject) JSONValue.parseWithException(genreJson);
            // get the title
            System.out.println(genreJsonObject.get("title"));
            // get the data
            JSONArray genreArray = (JSONArray) genreJsonObject.get("dataset");
            // get the first genre
            JSONObject firstGenre = (JSONObject) genreArray.get(0);
            System.out.println(firstGenre.get("genre_title"));
        } catch (IOException | ParseException e) {
            e.printStackTrace();
        }
    }
}

ایجاد یک رشته JSON مشابه رشته بالا

import java.util.HashMap;
import java.util.Map;
 
import org.json.simple.JSONAware;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
 
public class BuildJson2 {
 
    public static void main(String[] args) {
        BuildJson2 json2 = new BuildJson2();
        GenreBean bean = json2.new GenreBean();
        bean.setGenre_title("International");
        bean.setGenre_color("#CC3300");
        bean.setGenre_handle("International");
        bean.setGenre_id(1);
        System.out.println(JSONValue.toJSONString(bean));
    }
 
    class GenreBean implements JSONAware {
 
        int genre_id;
        int genre_parent_id;
        String genre_handle;
        String genre_title;
        String genre_color;
 
        @Override
        public String toJSONString() {
            Map<Object , Object> genreBeanJsonMap = new HashMap<Object , Object>();
            genreBeanJsonMap.put("genre_id", getGenre_id());
            genreBeanJsonMap.put("genre_parent_id", getGenre_parent_id());
            genreBeanJsonMap.put("genre_handle", getGenre_handle());
            genreBeanJsonMap.put("genre_title", getGenre_handle());
            genreBeanJsonMap.put("genre_color", getGenre_color());
            return JSONObject.toJSONString(genreBeanJsonMap);
        }
 
        public int getGenre_id() {
            return genre_id;
        }
 
        public void setGenre_id(int genre_id) {
            this.genre_id = genre_id;
        }
 
        public int getGenre_parent_id() {
            return genre_parent_id;
        }
 
        public void setGenre_parent_id(int genre_parent_id) {
            this.genre_parent_id = genre_parent_id;
        }
 
        public String getGenre_handle() {
            return genre_handle;
        }
 
        public void setGenre_handle(String genre_handle) {
            this.genre_handle = genre_handle;
        }
 
        public String getGenre_title() {
            return genre_title;
        }
 
        public void setGenre_title(String genre_title) {
            this.genre_title = genre_title;
        }
 
        public String getGenre_color() {
            return genre_color;
        }
 
        public void setGenre_color(String genre_color) {
            this.genre_color = genre_color;
        }
 
    }
}

با توجه به مثال های بالا می توانید یک رشته JSON را ایجاد و آن را Parse یا تجزیه کنید و در پروژه خود از آن با استفاده از لایبرری Gson استفاده کنید و رد و بدل اطلاعات بر اساس رشته های جی سون را به خوبی انجام دهید.

راستی اگه توسعه دهنده اندروید هستی ، میتونی سورس ها خودت رو در مارکت اندروید ریور بفروشی و کسب درآمد فوق العاده ای داشته باشی برای شروع اینجا کلیک کن و برای اطلاع از تخفیف ها و محصولات ویژه در تلگرام اندروید ریور رو دنبال کن عضویت در کانال

  خرید سورس های حرفه ای بازی و اپلیکیشن اندروید

  پیوستن به کانال تلگرام اندروید ریور

دسته‌ها: آموزش برنامه نویسی اندروید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *