Showing posts with label gson. Show all posts
Showing posts with label gson. Show all posts

Sunday, July 1, 2018

Generate POJO Class dari JSON mengunakan DTO Generator

Apa itu DTO Generator ?

DTO Generator adalah plugin Android Studio dan Intellij IDE yang digunakan untuk melakukan generate code dari JSON ke dalam bentuk POJO Class, plugin ini sangat membantu kita dalam menulis sebuah code dengan lebih cepat dan efisien.

Bagaimana installasi plugin di Android Studio / Intellij IDE ?
Buka File - Settings - Plugins pada Android Studio
Selanjutnya, browse repositories lalu cari DTO Generator pada search box, kemudian install dan restart

Bagaimana menggunakan DTO Generator?

Kasusnya kita akan membuat POJO Class dari json yang kita dapat, nah pertama yang harus dilakukan adalah membuat class baru di Android Studio.
Selanjutnya klik kanan generate lalu pilih DTO from JSON

Paste JSON pada tabs DTO Generator
Pilih Settings, lalu atur seperti dibawah ini

Keterangan :

1. Organize classes
  • Single file inner class : Membuat pojo class pada setiap objek dalam satu class
  • Separate file for each object : Membuat pojo class pada setiap objek dalam beda class
2. Type
  • Gson : Pojo class yang menggunakan library gson yang merupakan library java untuk serialize dan deserialize java object dari json atau sebaliknya
  • Jackson : Pojo class yang menggunakan library jackson yang merupakan library java untuk memproses JSON
  • Plain Class : Pojo class biasa
  • AutoValue : Pojo class yang menggunakan library AutoValue yang merupakan Library gson extension untuk membuat value types di java serta membantu mengurangi kode boilerplate yang terlibat dengan pembuatan tipe nilai.
  • Custom : Pojo class yang dimana kita dapat mengcustom sendiri anotasi pada setiap variabel
3. Encapsulation Option
  • Make fields private : Membuat field pada class menjadi private
  • Provide setter : Menambahkan method setter
  • Provide getter : Menambahkan method getter
3. Naming

  • Prefix field with : menambahkan field dengan prefix
  • Use camel case : menggunakan format penulisan camel case pada field

Jika semuanya sudah dirasa sesuai, pilih generate. Dan berikut adalah hasil dari generate POJO Class dari bentuk JSON


Sekian dari saya, semoga membantu :))

referensi :
https://github.com/nvinayshetty/DTOnator
https://www.slideshare.net/vinayhebballi/json-vs-gson-vs-jackson
https://medium.com/3xplore/autovalue-with-retrofit-2-0-61f9530787b1

Sunday, March 19, 2017

Currency Conversion With Gson

Pada kesempatan kali ini saya akan mencoba menuliskan cara mendapatkan kurs nilai tukar mata uang dengan menggunakan java dan gson sebagai library nya. 

Apa itu gson? gson adalah library yang diciptakan oleh si mbah google yang berfungsi untuk mengubah objek java menjadi sebuah objek json. 

Use case yang saya ambil adalah bagaimana mendapatkan informasi nilai tukar mata uang atau currency conversion dengan menggunakan API Provider http://api.fixer.io/

Karena kita menggunakan gson sebagai library tambahan, maka pastikan kalian sudah memiliki library tersebut, jika tidak kalian dapat men-download gson pada link berikut https://mvnrepository.com/artifact/com.google.code.gson/gson/2.8.0

Untuk melakukan konversi nilai tukar mata uang kita harus mendapatkan nilai rate-nya terlebih dahulu kemudian di-kalikan dengan nilai ammount, kita tidak perlu report memikirkan darimana datangnya hasil nilai rate, karena kita cukup menggunakan API Provider http://api.fixer.io/ yang sudah disediakan oleh google.

Berikut adalah contoh java untuk currency conversion

CurrencyConversionResponse.java

package gsontest;

import java.util.Map;
import java.util.TreeMap;


public class CurrencyConversionResponse {

 private String base;
 private String date;

 private Map rates = new TreeMap();

 public Map getRates() {
  return rates;
 }

 public void setRates(Map rates) {
  this.rates = rates;
 }

 public String getBase() {
  return base;
 }

 public void setBase(String base) {
  this.base = base;
 }

 public String getDate() {
  return date;
 }

 public void setDate(String date) {
  this.date = date;
 }

}




CurrencyConvertor.java

package gsontest;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Scanner;

import com.google.gson.Gson;

public class CurrencyConvertor {

 private static final String API_PROVDIER = "http://api.fixer.io/";

 public static double convert(String fromCurrencyCode, String toCurrencyCode) {

 if ((fromCurrencyCode != null && !fromCurrencyCode.isEmpty())
   && (toCurrencyCode != null && !toCurrencyCode.isEmpty())) {

  CurrencyConversionResponse response = 
   getResponse(API_PROVDIER + "/latest?base=" + fromCurrencyCode);

  if (response != null) {

   String rate = response.getRates().get(toCurrencyCode);

   double conversionRate = 
     Double.valueOf((rate != null) ? rate : "0.0");

   return conversionRate;
  }

 }

  return 0.0;
 }

 private static CurrencyConversionResponse getResponse(String strUrl) {

  CurrencyConversionResponse response = null;

  Gson gson = new Gson();
  StringBuffer sb = new StringBuffer();

  if (strUrl == null || strUrl.isEmpty()) {

   System.out.println("Application Error");
   return null;
  }

  URL url;
  try {
   url = new URL(strUrl);

   HttpURLConnection connection = 
     (HttpURLConnection) url.openConnection();

   InputStream stream = connection.getInputStream();

   int data = stream.read();

   while (data != -1) {

    sb.append((char) data);

    data = stream.read();
   }

   stream.close();

   response = gson.fromJson(sb.toString(), 
     CurrencyConversionResponse.class);

  } catch (MalformedURLException e) {

   System.out.println(e.getMessage());
   e.printStackTrace();

  } catch (IOException e) {

   System.out.println(e.getMessage());
   e.printStackTrace();
  }

  return response;
 }

 public static void main(String[] args) throws IOException {

  Scanner scanner = new Scanner(System.in);

  System.out.println("Enter the currency code ?");
  String fromCurrencyCode = scanner.next();

  System.out.println("Enter the Amount value:");
  double amount = scanner.nextDouble();

  System.out.println("Enter the Currency Code that you want to covert : ");
  String toCurrencyCode = scanner.next();

  fromCurrencyCode = fromCurrencyCode.toUpperCase();
  toCurrencyCode = toCurrencyCode.toUpperCase();
  
  double coversionRate = convert(fromCurrencyCode, toCurrencyCode);

  System.out.println(amount + " " + fromCurrencyCode + 
    " is equivalent to " + (coversionRate * amount) + " "
    + toCurrencyCode + " today.");

  scanner.close();
 }

}




Berikut hasil dari hasil currency conversion dari USD ke IDR


Kalian juga dapat melakukan currency conversion dengan soap service pada wsdl berikut http://www.webservicex.net/CurrencyConvertor.asmx

Berikut hasil currency conversion jika service tersebut kita coba jalankan dengan menggunakan soap-UI


Demikian blog saya kali ini, untuk referensi terkait blog ini dapat juga dilihat pada link berikut, see ya..