Android ile JSON Dosyadan Parse Örneği – 2

Android ile JSON Dosyadan Parse Örneği – 2

Json ParseBu yazı da JSON dosyasından parse(ayrıştıracağımız) edeceğimiz bir Android uygulaması geliştireceğiz. Bu yazıyı anlayabilmek  için json parse yazımıza göz atmanız yeterli.

Eclipse de yeni bir android projesi oluşturalım. Proje adını JsonProje, package adını com.trandroid, default Activity classıma da HelloJson adını verdim siz istediğiniz gibi isimlendirebilirsiniz. Şimdi öncelikle oluşturacağımız JSON yapısına göz atmakta yarar var.

{
 "ad":"Fatih",
 "soyad":"ISIK"
 "takipettikleri":
 {
   "kategori" : "bilisim",
   "siteler":
       [
        {
          "adresi": "www.trandroid.com",
          "slogan": "Android ile İlgili Türkçe Haberler, Uygulamalar..."
        },
        {
          "adresi": "www.android.com",
          "slogan": "Android Offical Web Site"
        }
       ]
    }
}

Şimdi de projemizde dosyamızı oluşturalım. Bunun için proje içinde res dizinin altına raw adında yeni bir dizin tanımlayalım ve altına siteler adında yeni bir doosya oluşturalım ve yukarıdaki json örneğimizi içine yapıştıralım. Benim oluşturduğum proje dizini Resim 1 ‘de ki gibidir.

Json Proje Görüntüsü

Resim 1 - JsonProje dizin gösterimi

main.xml dosyamızdaki TextView’ı aşağıdaki düzenleyelim. Sadece Activity class’ımızdan ulaşabilmek için id veriyoruz.

<TextView
 android:id="@+id/jsonData"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"/>

Sıra geldi HelloJson class’ımızda gerekli kodları yazmaya. Bunun için ise oncreate metodunu aşağıdaki gibi değiştirmeniz yeterli olacak.

public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);

 TextView jsonDataTextView = (TextView) findViewById(R.id.jsonData);

 try
 {
 StringBuilder stringBuilder = new StringBuilder();
 InputStream inStream = this.getResources().openRawResource(R.raw.siteler);
 byte [] buffer = new byte[inStream.available()];
 while (inStream.read(buffer) != -1);
 String json = new String(buffer);
 JSONObject obj = new JSONObject(json);
 stringBuilder.append(obj.getString("ad") + " " + obj.getString("soyad"));
 JSONObject takip = new JSONObject(obj.getString("takipettikleri"));
 stringBuilder.append(" " + takip.getString("kategori") + " kategorisinde şu siteleri takip ediyor :\n\n");
 JSONArray siteler = takip.getJSONArray("siteler");

 int i;
 for (i=0;i<siteler.length();i++)
 {
 JSONObject ss = siteler.getJSONObject(i);
 stringBuilder.append("\tSite adresi: " + ss.getString("adresi") + "\n");
 stringBuilder.append("\tSloganı: " + ss.getString("slogan") + "\n\n");
 }
 jsonDataTextView.setText(stringBuilder.toString());
 }
 catch (Exception je)
 {
 jsonDataTextView.setText("Error w/file: " + je.getMessage());
 }
}
Json Parse ekran görüntüsü

Resim 2 - Json Parse Örneği Ekran Görüntüsü

Fatih IŞIK

Başarılı başarısız bir çok girişimi olan yazarımız ülkemizde Android ile ilgilen ilk kişilerden olmuştur. Android markette yüzbinlerce kişinin kullandığı uygulamaları hayata geçirmiş ve aynı zamanda ekip halinde Android uygulamalar yazmayı hedefleyen AndroTurk'un kurucularındandır. -trandroid.com Kurucu -AndroTurk Kurucu ortağı

4 Yorumlar

  1. Selam paylaşım için teşekkürler.
    Şöyle bir sorunum var.Bu işlemi bir url den yapamıyor muyuz?
    Örnek kod gönderirsen sana dua ederim :)
    Kolay gelsin…

  2. “siteler” isimli dosyayı buradan direk kopyala yapıştır yapınca çalışmıyor. Nedeni ise alt satıra geçiren [ENTER] karakteri. Bu karakteri silip tek satır halinde ki JSON’dan parse etmemiz gerekiyor. Sadece böyle çalıştırabildim. Eğer hata alıyorsanız bunu deneyebilirsiniz.

    İyi Günler

  3. Kodunuz çalışmıyor hata veriyor.
    Rica etsek anlatılan örneğin altına kodun zip dosyasını koyar mısınız?

Geri Bildirimler

  1. Android ile Web Üzerinden Json Parse Örneği – 3 | trandroid.com - [...] Web üzerindeki Json örneğini alıp parse edeceğiz. Bu yazıyı okumadan önce json parse 1 ve dosyadan json parse örneklerine  ...

Yorum yazsana

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>