Skip to main content
GSON List yapısının dönüştürülmesi

GSON ile List Yapısının Dönüştürülmesi

Değerli arkadaşlarım;

Bugün sizlere Android Uygulama Geliştirme sürecinin artık vazgeçilmez araçlarından biri olmayı başaran `GSON` ile ilgili küçük bir ipucunu paylaşacağım.

Bildiğiniz üzere GSON , Java Objectlerini JSON a ve JSON ları Java Objectlere kolaylıkla dönüştürmemizi sağlayan , uygulama geliştirme aşamalarında geliştiricinin hayatını kolaylaştıran en önemli Object Serialize / Deserialize araçlarından birtanesidir. GSON ile ilgili komple bir ders hazırlayacağım, fakat şimdi az öncede kullandığım ve ilk kullanımımda aramakla oldukça vakit kaybettiğim, mevcut JSON Array ımızın , List türündeki değişkenimize nasıl atayacağımızı göstereceğim.

Aşağıda anlatımın geri kalanında dikakte alacağım JSON Array bulunmaktadır. Basit bir kullanıcı listemiz olduğunu varsayalım.

[
	{
		"name":"Emin",
		"surname":"Ayar",
		"gender":"male"
		
	},
	{
		"name":"Sabri",
		"surname":"Ayeş",
		"gender":"male"
	},
	{
		"name":"Büşra",
		"surname":"Ayar",
		"gender":"female"
	}
]

Sonrasında uygulamamızda yukardaki JSON Array i atayacağımız ve array içerisindeki her bir object e denk gelen User POJOmuz

public class User {
    
    private String name;
    private String surname;
    private String gender;

    public User() { }
}
Projenizde GSON u kullanıyorsanız, oluşabilecek aksaklıklar ve gözden kaçma ihtimaline karşın her zaman POJO larınızda “SerializedName” annotationu nu kullanmanız şiddetle tavsiye olunur

Şimdi dersimizin temel konusunu oluşturan JSON Array imizi nasıl List a atayabileceğimize bir bakalım.

Normalde bir JSONObject i sadece

 User user = new Gson().fromJson(myArrayList.getJSONObject(0).toString(), User.class)

şeklinde tek satır kodla POJO muza atayabilirken ; iş List yapısını atamaya geldiğinde biraz daha karmaşıklaşıyor. Aşsağıda bulacağınız örnekte JSON Array in nasıl List yapısına aktarıldığı görülmektedir.

 
Type listType = new TypeToken<ArrayList<User>>() {}.getType();
List<User> userList= new Gson().fromJson(myArrayList.toString(), listType);

Umarım bu ipucunu faydalı bulursunuz, konu ile ilgili tüm sorularınızı yorumlara bırakırsanız en kısa vakitte sizlere yardımcı olmaya çalışacağım. Teşekkürler.

Eğer derslerimizi, ipuçlarımızı, yazılarımızı beğeniyorsanız ; sosyal medya hesaplarımızı takip ederek, yazılarımızı paylaşarak ve tamamen isteğe bağlı olarak yorgun günün sonunda birer fincan kahve ısmarlayarak bizlere destek olmuş olursunuz. Sonraki derslerde görüşmek dileğiyle.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir