Gson - Genel Bakış
Google Gson, Java nesnelerini JSON'a ve tersi yönde serileştirmek için Java tabanlı basit bir kitaplıktır. Google tarafından geliştirilmiş açık kaynaklı bir kütüphanedir.
Aşağıdaki noktalar bu kitaplığı neden kullanmanız gerektiğini vurgulamaktadır -
Standardized - Gson, Google tarafından yönetilen standartlaştırılmış bir kitaplıktır.
Efficient - Java standart kitaplığının güvenilir, hızlı ve verimli bir uzantısıdır.
Optimized - Kitaplık oldukça optimize edilmiştir.
Support Generics - Jenerikler için kapsamlı destek sağlar.
Supports complex inner classes - Derin kalıtım hiyerarşisine sahip karmaşık nesneleri destekler.
Gson'un Özellikleri
İşte Gson'un en önemli özelliklerinden bazılarının listesi -
Easy to use - Gson API, yaygın olarak kullanılan kullanım durumlarını basitleştirmek için üst düzey bir cephe sağlar.
No need to create mapping - Gson API, serileştirilecek nesnelerin çoğu için varsayılan eşleme sağlar.
Performance- Gson oldukça hızlıdır ve düşük bellek ayak izine sahiptir. Büyük nesne grafikleri veya sistemleri için uygundur.
Clean JSON - Gson, okunması kolay, temiz ve kompakt bir JSON sonucu oluşturur.
No Dependency - Gson kitaplığı, JDK dışında herhangi bir kitaplık gerektirmez.
Open Source- Gson kütüphanesi açık kaynak kodludur; ücretsiz olarak temin edilebilir.
JSON İşlemenin Üç Yolu
Gson, JSON'u işlemek için üç alternatif yol sağlar -
Akış API'si
JSON içeriğini ayrık olaylar olarak okur ve yazar. JsonReader ve JsonWriter veriyi belirteç olarak oku / yaz JsonToken.
JSON'u işlemeye yönelik üç yaklaşım arasında en güçlü yaklaşımdır. En düşük ek yüke sahiptir ve okuma / yazma işlemlerinde oldukça hızlıdır. XML için Stax ayrıştırıcısına benzer.
Ağaç Modeli
JSON belgesinin bellek içi ağaç gösterimini hazırlar. JsonObject düğümlerinden bir ağaç oluşturur. Esnek bir yaklaşımdır ve XML için DOM ayrıştırıcısına benzer.
Bağlanma verileri
Özellik erişimcisini kullanarak JSON'u POJO'ya (Düz Eski Java Nesnesi) dönüştürür. Gson, veri türü bağdaştırıcılarını kullanarak JSON'u okur / yazar. XML için JAXB ayrıştırıcısına benzer.