Mode Malam
| Mode Tampilan
Penulis : admin

Home » Programming » Tutorial Cara Memparsing Json Ke Bentuk Object Model
Tutorial Cara Memparsing Json Ke Bentuk Object Model

Tutorial Cara Memparsing Json Ke Bentuk Object Model


Membuat aplikasi terintegrasi tidak akan terlepas dari yang namanya Rest Api. Karena terkadang, dalam membangun sebuah sistem kita menggunakan lebih dari satu bahasa pemrograman. Untuk dapat saling bertukar data, maka data yang dikirim harus berupa format data yang di kenali oleh setiap bahasa pemrograman. Format data yang umum digunakan yaitu XML dan Json.

Namun kali ini untuk sementara kita tidak akan membahas fortmat xml tapi akan fokus ke json. Sesuai yang tertera pada judul di atas, kita akan coba memparsing data json yang kita dapatkan menjadi object yang dapat di proses di bahasa pemrograman android kotlin maupun java.

advertisement

Tutorial ini mungkin akan sangat bermanfaat bagi kalian yang mulai menjadi seorang android front end programmer (pemula), dan bagi yang sudah expert mungkin bisa memberikan masukan pada artikel kali ini. Disini kita akan menggunakan library dari google untuk memparsing jsonnya ke bentuk object yaitu Gson  library. Oke langsung saja ke tutorialnya.

Instalasi

Buka app module build.gradle project android kalian dan dibagian dependecies masukan code berikut

dependencies {
  implementation 'com.google.code.gson:gson:2.8.6'
}

silahkan kalian singkronkan untuk mendownload package gsonnya

Cara Menggunakan

  1. Sebagai contoh disini saya akan mencoba memparing data json dari reqres.in, link jsonnya sebagi berikut
    https://reqres.in/api/users?page=1

    Silahkan kalian copy dulu json yang ada di url tersebut 

  2. Buat class modelnya dari json format dengan cara buka jsonschema2pojo.org. Silahkan kalian paste json yang sebelumnya sudah kalian copy dan atur seperti pada gambar
    a. Package sesusai nama packgae android kalian
    b. Beikan nama classnya yg nanti akan jadi class model nya
    c. Stle anotasinya kita menggunakan Gson

    Kemudian kalian scroll ke bagian bawah dan klik tombol preview, dan silahkan kalian copy hasilnya

    Kalian juga bisa langsung mendapatkan class model nya dalam bentuk zip file dengan mengklik zip.  Atau jika kalian ingin filenya dalam bentuk kotlin kalian bisa menggunakan www.json2kotlin.com.

  3. Jika kalian mendownloadnya dalam bentuk zip, kalian bisa mengekstrak hasilnya dan menaruhnya dalam direktori package project android kalian. Jika kalian hanya mengcopy dari preview kalian bisa membuat class java. Klik kanan pada package, klik New dan klik Java Class.

    Berikan nama class sesuai nama class pada saat kita mengaturnya di jsonschema2pojo.org
    Silahkan kalian paste yang sudah kita copy kedalamnya, dan pasti error kan,, tinggal kalian perbaiki menjadi seperti ini.
    package com.zain.tutorialgson;
    import com.google.gson.annotations.Expose;
    import com.google.gson.annotations.SerializedName;
    import java.util.List;
    class Ad {
        @SerializedName("company")
        @Expose
        private String company;
        @SerializedName("url")
        @Expose
        private String url;
        @SerializedName("text")
        @Expose
        private String text;
        public String getCompany() {
            return company;
        }
        public void setCompany(String company) {
            this.company = company;
        }
        public String getUrl() {
            return url;
        }
        public void setUrl(String url) {
            this.url = url;
        }
        public String getText() {
            return text;
        }
        public void setText(String text) {
            this.text = text;
        }
    }
    
    class Datum {
        @SerializedName("id")
        @Expose
        private Integer id;
        @SerializedName("email")
        @Expose
        private String email;
        @SerializedName("first_name")
        @Expose
        private String firstName;
        @SerializedName("last_name")
        @Expose
        private String lastName;
        @SerializedName("avatar")
        @Expose
        private String avatar;
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        public String getFirstName() {
            return firstName;
        }
        public void setFirstName(String firstName) {
            this.firstName = firstName;
        }
        public String getLastName() {
            return lastName;
        }
        public void setLastName(String lastName) {
            this.lastName = lastName;
        }
        public String getAvatar() {
            return avatar;
        }
        public void setAvatar(String avatar) {
            this.avatar = avatar;
        }
    }
    
    public class Deretcode {
        @SerializedName("page")
        @Expose
        private Integer page;
        @SerializedName("per_page")
        @Expose
        private Integer perPage;
        @SerializedName("total")
        @Expose
        private Integer total;
        @SerializedName("total_pages")
        @Expose
        private Integer totalPages;
        @SerializedName("data")
        @Expose
        private List<Datum> data = null;
        @SerializedName("ad")
        @Expose
        private Ad ad;
        public Integer getPage() {
            return page;
        }
        public void setPage(Integer page) {
            this.page = page;
        }
        public Integer getPerPage() {
            return perPage;
        }
        public void setPerPage(Integer perPage) {
            this.perPage = perPage;
        }
        public Integer getTotal() {
            return total;
        }
        public void setTotal(Integer total) {
            this.total = total;
        }
        public Integer getTotalPages() {
            return totalPages;
        }
        public void setTotalPages(Integer totalPages) {
            this.totalPages = totalPages;
        }
        public List<Datum> getData() {
            return data;
        }
        public void setData(List<Datum> data) {
            this.data = data;
        }
        public Ad getAd() {
            return ad;
        }
        public void setAd(Ad ad) {
            this.ad = ad;
        }
    
    }

    Kalo kalian merasa code diatas terlalu panjang, kalian bisa mengkonversinya ke kotlin ko jadi gak pake method setter getter lagi.

  4. Buat fungsi http request get nya untuk memperoleh data jsonnya dari reqres.in seperti di step pertama, jika kalian belum bisa melakan http request kalian bisa membuka tutorial cara membuat http request di android.
  5. Kemudian json yang sudah kita dapat kita konversi ke bentuk string dan kita parsing ke bentuk object dengan menggunakan Gson. codenya seperti ini.
    Jika Json Object
    Deretcode objectDeretCode = new Gson().fromJson(response.toString(),Deretcode.class);
    Jika Json Array
    TypeToken<List<Datum>> token = new TypeToken<List<Datum>>() {};
    List<Datum> listObject = gson.fromJson(data, token.getType());
     
    Maka syntaxnya kurang lebih seperti ini
    AndroidNetworking.initialize(getApplicationContext());
            AndroidNetworking.get("https://reqres.in/api/users?page=1")
                    .setPriority(Priority.LOW)
                    .build()
                    .getAsJSONObject(new JSONObjectRequestListener() {
                        @Override
                        public void onResponse(JSONObject response) {
                            //Memparsin data Jsonnya dengan Gson yang sudah kita install
                            Deretcode objectDeretCode = new Gson().fromJson(response.toString(),Deretcode.class);
                            for (Datum datum: objectDeretCode.getData()) {
                                Log.d("First Name:",datum.getFirstName());
                                Log.d("Last Name:",datum.getLastName());
                                Log.d("Email:",datum.getEmail());
                            }
    
                        }
                        @Override
                        public void onError(ANError error) {
                            Log.d("Error:",error.getMessage());
                        }
                    });

    Tambahan: Jika kalian ingin mengkonversi Object ke Json String codenya seperti ini
    String JsonString =new Gson().toJson(objectModel);

advertisement

Sekian dulu tutorial parsing json ke object di android, terimakasih sudah mampir. Jangan lupa di share jika kalian merasa artikel ini bermanfaat, kalau ada pertanyaan silahkan tulis di kolom komentar. Good Luck!

 

Tags: #android #parsingjson #gson
Bagikan :

Komentar:

Silahkan berkomentar dengan baik dan bijak!

Name * :
Email :
Website :
Comment :


This website uses cookies to ensure you get the best experience on our website

learn more