Press "Enter" to skip to content

Java Json Parse

Selahaddin Erdoğan 2

 

Bu yazımızda Doviz.com sayfasının json formatında paylaştığı döviz verilierini Java ile alıp parse etmeyi öğreneceğiz.

Öncelikle IDE’nizde bir Maven projesi açın ve JSON kütüphanesini projenizin classpathine ekleyecek olan şu bağımlılık kodunu pom.xml dosyanıza ekleyin:

<!-- https://mvnrepository.com/artifact/org.json/json -->
 <dependency>
   <groupId>org.json</groupId>
   <artifactId>json</artifactId>
   <version>20171018</version>
 </dependency>

Json verimizi  https://www.doviz.com/api/v1/currencies/all/latest   adresinden paylaşılan döviz verilerini alıp kullanacağız.

Dovizler Sınıfımızı oluşturuyoruz,

package com.selahaddinerdogan.jsonparse;

public class Dovizler {
    double selling,buying,change_rate;
    long update_date;
    int currency;
    String name,full_name,code;

    public double getSelling() {
        return selling;
    }

    public void setSelling(double selling) {
        this.selling = selling;
    }

    public double getBuying() {
        return buying;
    }

    public void setBuying(double buying) {
        this.buying = buying;
    }

    public double getChange_rate() {
        return change_rate;
    }

    public void setChange_rate(double change_rate) {
        this.change_rate = change_rate;
    }

    public long getUpdate_date() {
        return update_date;
    }

    public void setUpdate_date(long update_date) {
        this.update_date = update_date;
    }

    public int getCurrency() {
        return currency;
    }

    public void setCurrency(int currency) {
        this.currency = currency;
    }

    public String getName() {
        return name;
    }

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

    public String getFull_name() {
        return full_name;
    }

    public void setFull_name(String full_name) {
        this.full_name = full_name;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public Dovizler(double selling, double buying, double change_rate, long update_date, int currency, String name, String full_name, String code) {
        this.selling = selling;
        this.buying = buying;
        this.change_rate = change_rate;
        this.update_date = update_date;
        this.currency = currency;
        this.name = name;
        this.full_name = full_name;
        this.code = code;
    }

    @Override
    public String toString() {
        return
                " selling=" + selling +"\n"+
                " buying=" + buying +"\n"+
                " change_rate=" + change_rate +"\n"+
                " update_date=" + update_date +"\n"+
                " currency=" + currency +"\n"+
                " name='" + name + '\'' +"\n"+
                " full_name='" + full_name + '\'' +"\n"+
                " code='" + code + '\'' ;
    }
}

 

 

HttpURLConnection sınıfını kullanarak  bağlantı adresimizden datalarımızı çekip bunu bir String şeklinde dönderiyoruz.

Daha sonra bu  String halinde dönen verimizi JSONArray formatına çevirip parse ediyoruz.

package com.selahaddinerdogan.jsonparse;

import jdk.management.resource.internal.inst.FileOutputStreamRMHooks;
import org.json.JSONArray;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;

public class JsonParse {


private  String getJson(){
    HttpURLConnection connection = null;
    String urllink="https://www.doviz.com/api/v1/currencies/all/latest";
    String output="";
    try {
        URL url = new URL(urllink);
        connection = (HttpURLConnection) url.openConnection();
        connection.setDoOutput(true);
        connection.setRequestMethod("GET");
        connection.setRequestProperty("Content-Type", "application/json");
        BufferedReader br = new BufferedReader(new InputStreamReader(
                (connection.getInputStream()), "UTF-8"));
        output = br.readLine();
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if(connection!=null){
            connection.disconnect();
        }
    }
    return output;
}

    public static void main(String[] args) {
      JsonParse jsonParse=new JsonParse();
      String jsonData=jsonParse.getJson();
      JSONArray jsonArray=new JSONArray(jsonData);
        for (int i=0;i<jsonArray.length();i++) {
            JSONObject jsonObject=new JSONObject(jsonArray.get(i).toString());

            double selling =jsonObject.getDouble("selling");
            double buying =jsonObject.getDouble("buying");
            double change_rate =jsonObject.getDouble("change_rate");
            long update_date=jsonObject.getLong("update_date");
            int currency =jsonObject.getInt("currency");
            String name=jsonObject.getString("name");
            String full_name=jsonObject.getString("full_name");
            String code=jsonObject.getString("code");
            Dovizler doviz=new Dovizler(selling,buying,change_rate,update_date,currency,name,full_name,code);
            System.out.println(doviz.toString());
            System.out.println("----------------------------------------");
        }
    }
}

 

Programın Çalışır ekran çıktısı:

 

Bir cevap yazın