• Yardım
  • Json dosyasından son eklenen 10 kaydı getirme

Arkadaşlar merhaba. Flutter’a yeni başladım.Takıldığım noktalar var .Local de json dosyasından son 10 kaydı ListView.builder ile nasıl gösterebilirim. Normalde json dosyasını decode ettiğimde tüm kayıtları getiriyor.Yani son eklenen kayıt sayfada hep üste gelsin istiyorum.

Flutter dediği gibi önce JSON veriniz class yapısına çevirmelisiniz. Daha sonra onun üzerinde istediğiniz sıralamayı yapabilirsiniz. JSON yapınızı https://app.quicktype.io/ adresini kullanarak class haline getirebilirsiniz. Ben severek kullanıyorum 😀 Muhtemelen sizin yapınızdaki News bir dizi olacak. İçerisinde tarih ya da ID gibi bir field var ise sıralamayı buna göre yapabilirsiniz.
JSON dosyanızın bir örneğini gönderirseniz daha hızlı yardımcı olabiliriz.

Foruma yeni üye oldum.Forumdaki ilgi ve iletişim dili gayet güzel.Bunun için ayrıca teşekkür ederim.
Complex bir json dosyasını parse etme ve verileri çekme olayının mantığını çözemedim. Önemli olan mantığını çözmem sonrası gelecek zaten. Localde şöyle bir json dosyası hazırladım.

https://drive.google.com/file/d/1voEo9j4nQGDWXWGAj6RidN0cCkXR2XRo/view?usp=sharing

Şimdi sorularım şunlar:
1- Bu dosyanın hiyerarşisinde bir problem var mı?
2- Dosyada tablo olarak düşünürsek News, Users, Gallery gibi ayrı bölümler oluşturmak istiyorum.Bunlardan ilki News.
Bu News bölümünü nasıl parse edeceğim (listeye dönüştüreceğim)?Habere ait photos ve comments bölümü de haberin içinde.Bunları ayrı ayrı liste olarak almam mı gerekiyor çünkü bir habere ait birçok resim ve yorum olacak?
3-Haber detay sayfasına gitmem için haberin index numarasını mı parametre olarak göndermem gerekiyor yoksa ID mi parametre olarak göndermeliyim?
4-Bu dosyayı firebase de oluşturduk diyelim.Bu haberleri eklemek için uygulamada admin bölümümü oluşturmam gerekiyor yoksa firebase in admin paneli(ekleme, güncelleme) var mı?

Teşekkürler.

emrahsahan
Hiyerarşi gayet doğru aslında ama tablo yapısı olarak News, Photos ve Comments olarak 3 adet tablon olmalı. Photos ve Comments tablolarında NewID olarak bir alan olmalı ki News tablosuna bu tabloları bağlayabilmelisiniz. https://app.quicktype.io?share=5×9mBZDooeADS6F2KKdD linkindeki Copy Code butonunu tıklayıp HaberlerYapi.dart dosyasına yapıştır. Bu senin JSON dosyanın class yapısı.

Daha sonra kendi kodunda değişiklik yapman gerek.

builder :(context,snapshot){
    final haberlerYapi = haberlerYapiFromJson(snapshot.data);
    List<News> sirali=haberlerYapi.News.sort((a,b)=>b.ID.compareTo(a.ID));
    return ListView.builder(
    itemCount: sirali.News.length,
    itemBuilder:(context,index){
        return Card(
            child:ListTile(
                title: Text(sirali.News[index].title)
            )
        );
    }
    );
}

Editör kullanmadan direkt buradan yazdım. Bazı yerlerde küçük hatalar olabilir 😀

cakaltepe Teşekkür ederim.Fotoğrafları ve Yorumları ben haberin içine gömmüştüm.Ayrı bir tablo olarak değiştireyim News ID vererek.Peki Firebasedeki bu yapıya yeni kayıt ekleme, düzenleme işini nasıl yapacağız?Admin panel mi yazmamız gerekiyor?

emrahsahan Firebase işini hiç bilmiyorum. Ben hep kendi Api kodlarımı yazdığım ve kendi veritabanımı kullandığım için gerek duymadım. Bir kaç gün içinde Push Notificatiıon için gireşeceğim Firebase konusuna ama bu konu sizin sorunuzun dışında tabi. Ancak internette firebase ile ilgili bir sürü yardımcı doküman bulabileceğinizi düşünüyorum.

emrahsahan Firebase’i şuana dek büyük hiçbir projemde kullanmadım(Notification hariç tabi). En büyük nedeni belirli bir yerden sonra ücretli olması.
@cakaltepe hocanın dediği gibi kendi api’mi yazdım, kendi sunucuma eriştim. Tevsiyem sizde öyle yapın.
@cakaltepe katkınız için teşekkürler.

    emrahsahan sqlite’ın flutter’da adı sqflite
    localde kullanılır sqflite
    Ben sunucuda mysql kullanıyorum

    emrahsahan Herhangi bir yerde uygun fiyata sunucu alabilirsiniz.
    Sunu olmasına gerek yok aslında.
    Hosting’te başlangıçta işinizi görür.

      Write a Reply...