Java’da GSON Kullanarak JSON Parse Etme

J

Java’nın hali hazırda JSON parse eden bir sınıfı var. Fakat bu yazının konusu JSON parse işlemini GSON ile yapmak.

GSON kütüphanesi, Java’nın kendi yaptığından farklı olarak JSON çıktılarını direkt Java nesneleri haline getirebilme özelliğine sahip. Bu avantaj da kütüphaneyi vazgeçilmez yapıyor. Her JSON’ı nesne üzeriden taşımak gereksiz olabilir, fakat gerektiği yerde GSON kod kalabalığı ve tekrarından bizleri kurtarıyor.

GSON kütüphanesi Apache License 2.0 ile korunmakta, dolasıyla projelerinizde kullanabilirsiniz. GSON bazı frameworkler içerisinde (Örn: Play) hazır olarak gelmektedir. Güncel sürümünü projenize ekleyin ve kullanıma geçelim.

JSON örneği olarak Twitter’ın public API üzerinden verdiği sonuçlardan birini sadeleştirip kullanalım:

[code lang=”javascript”] [
{
"name": "Twitter API",
"profile_sidebar_border_color": "87bc44",
"profile_background_tile": false,
},
{
"name": "GSON Example",
"profile_sidebar_border_color": "87bc44",
"profile_background_tile": false,
},
{
"name": "JSON Parse",
"profile_sidebar_border_color": "87bc44",
"profile_background_tile": false,
},
] [/code]

Şimdi de GSON üzerinden map edilecek sınıfı oluşturalım:

[code lang=”java”]

public class GSONClass {

private String name;
private String profile_sidebar_border_color;
private Boolean profile_background_tile;

}

[/code]

(Getter ve setter metodları atlıyorum)
Yapılan istek sonrasında ulaştığımız JSON ve bu JSON karşılık gelen sınıf hazır durumda. Sıra geldi GSON marifetlerine.

JSON sonucu String tipindeki jsonResult değişkeninde olsun.

[code lang=”java”] // Kullanacağımız gson instance.
Gson gson = new Gson();

// Gson parse ederken gereken parametrelerden biri ListType
// Burada GSONClass tipinde bir listeyi tip olarak tanımlıyoruz
Type listType = new TypeToken< List<GSONClass> >(){}.getType();

// jsonResult üzerindeki JSON sonucunu tip belirterek, GSONClass’lar içeren bir listeye aktarıyoruz.
List<GSONClass> objects = (List<GSONClass>)gson.fromJson(jsonResult, listType);

// Sonuca göz atalım</pre>
for(int i=0; i<objects.size(); i++)
Log.d("GSONParse", objects.get(i).getName());
[/code]

Böylece JSON’ı daha az kod yazarak, daha kullanışlı hale getirdik. GSON sağ olsun.

GSON kütüphanesi: http://code.google.com/p/google-gson/

Not: Uygulama içerisinde bu sınıfları Intent ile taşımak isterseniz, sınıfların Serializable olması gerekir.

2 Yorum

  • Selam ogulcan GSON ile ilgili birşeyler yapmaya çalışırken senin sayfanı buldum bu yazını ve bir öncekini okuyarak GSON u anlamaya çalıştım ama sanırım sen konuyu bildiğinden bazı kısımları atlamışsın.

    Play framework`ünü kurup çalışır hale getirmeme rağmen GSON beraberinde gelmedi.

    Bence yazında GSON kütüphanelerine nasıl ulaşılacağını da belirtmelisin.

Oğulcan

Arşivler

Kategoriler