JSON'dan Kotlin data class'a

JSON yapıştır, val property'li Kotlin data class'lar al. İsteğe bağlı ve null alanlar varsayılanı null olan nullable tiplere dönüşür, istersen kotlinx.serialization annotation'ları eklenir.

Ücretsiz ve gizli. Her şey tarayıcında çalışır, hiçbir şey yüklenmez.

Nasıl kullanılır

  1. JSON'unu yapıştırAPI'nden gelen bir yanıtı yapıştır ya da .json dosyası aç. Nasıl çalıştığını görmek için Örnek'e bas.
  2. Seçenekleri ayarlaEn üstteki tipin adını ve bu dile özel seçenekleri belirle. Kod sen yazdıkça güncellenir.
  3. Kopyala ya da indirKodu projene kopyala ya da dosya olarak indir.

Android ve sunucu kodu için data class

Her JSON nesnesi camelCase property'li bir data class olur. kotlinx.serialization açıkken her class @Serializable ile işaretlenir, property adının farklı olduğu her yerde @SerialName asıl anahtarı korur. Tipi bilinmeyen alanlar JsonElement kullanır; kotlinx.serialization bunu ek kod yazmadan okuyabilir.

Bazı öğelerde olmayan ya da null olabilen alanlar = null ile nullable tip olarak yazılır, böylece alan yoksa decode işlemi hata vermez. Tarihler String kalır, çünkü kotlinx.serialization'da hazır bir tarih tipi yoktur; tarih nesnesi istiyorsan kendi serializer'ını ekle ya da kotlinx-datetime kullan. Annotation'lar olmadan class'lar Moshi, Gson ya da Jackson ile de çalışır.

Sık sorulan sorular

Neden bazı property'ler nullable?

Çünkü örnek onların eksik ya da null olabildiğini gösteriyor. Onları null olamaz yapmak bu tür verilerde decode işleminin hata vermesine yol açar.

JSON'um bir yere yükleniyor mu?

Hayır. Tipler tarayıcında oluşturulur. Müşteri verisi ya da anahtar içeren API yanıtları cihazından çıkmaz.

İsteğe bağlı alanlar nasıl bulunuyor?

JSON'da bir nesne listesi varsa her nesne karşılaştırılır. En az bir nesnede olmayan alan isteğe bağlı olarak işaretlenir. Tek bir nesne varsa her alan zorunlu sayılır.

Hep null olan alanlara ne oluyor?

Tipi örnekten anlaşılamaz, bu yüzden alan unknown, object, Any ya da JsonElement gibi genel bir tip alır. Kesin tip için alanın dolu olduğu bir örnek ekle.

1.0 değerim neden ondalıklı sayı oldu?

Araç sayının nasıl yazıldığına bakar. 1.0 ya da 2.5 double veya float olur, 1 tam sayı olur. Bir alan bazı öğelerde tam, bazılarında ondalıklıysa ondalıklı tip kullanılır.

Sonucu canlı projede kullanabilir miyim?

Evet, kod olağan kurulumlarda olduğu gibi derlenir. Yine de commit etmeden önce adları ve tipleri gözden geçir, çünkü bir örnek hiçbir zaman olası bütün değerleri göstermez.

İnternetsiz çalışır mı?

Evet. Sayfayı bir kez açtıktan sonra internet bağlantısı olmadan da çalışmaya devam eder.