Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - json ile veri çekme
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

json ile veri çekme

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
ElifKarabacak Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 16 Eylül 2024
Durum: Aktif Değil
Puanlar: 15
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı ElifKarabacak Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: json ile veri çekme
    Gönderim Zamanı: 19 Kasım 2024 Saat 15:50
Aşağıdaki kodda api da 30 kayıtım var. Ben sadece 10 id sine sahip olan kaydı alıp Progridde gösterdim. Ama ben bütün kayıtlar ProGrid e gelsin istiyorum. Bunu nasıl yapabilirim?
Teşekkürler.

var 
jsonObject:TClJsonQuery;
clRest:TclRest;
mainform: TclForm;
progrid: TclProGrid;
mainvertScrollBox: TCLVertScrollBox;

void usersgrid;
{
  clRest         = TclRest.Create;
  jsonObject     = TClJsonQuery.Create(nil);
  clRest.BaseURl = 'https://dummyjson.com/users/10';
  clRest.Accept  = 'application/json';
  clRest.Method  = rmGet;
  clRest.Execute;
  
   jsonObject = Clomosy.ClDataSetFromJSON(clRest.Response); 
   jsonObject.OpenOrExecute;
   
   ShowMessage(jsonObject);
    with jsonObject do
    {
     try
     
      if (Found) 
      {
        First; 
        while (not EOF)  // Loop until the end of the dataset is reached
        {
          
        
   if (jsonObject.Found)
    {
     progrid = mainform.addnewprogrid(mainvertScrollBox, 'progrid');
     progrid.AutoSizeColumns(True,300);
     ProGrid.ConnectDataSet(jsonObject);
   with progrid do
    {
     align= alClient;
     margins.right= 30;
     margins.left= 30;
     margins.bottom= 30;
    // width=(mainform.clwidth*90)/100;
     //height=(mainform.clheight*75)/100;
     FixedLayoutFillColor = clalphacolor.clhextocolor('#3fc660');
    }
   
   
    }
  
          
          Next;  // Move to the next record
        }
      }
       except
      ShowMessage('[01] Exception Class: '+LastExceptionClassName+' Exception Message: '+LastExceptionMessage);
    }
  }
}
{
  mainform = TclForm.Create(self);
  ClRTSetProperty(mainform,'ClientWidth',900);
  ClRTSetProperty(mainform,'ClientHeight',750);
  
  mainvertScrollBox = mainform.AddNewVertScrollBox(mainform,'mainvertScrollBox');
  mainvertScrollBox.align=alClient;
  

  usersgrid;  
  
  mainform.Run;

}

Yukarı Dön
Yusuf Eren Açılır Kutu İzle
Yeni Üye
Yeni Üye
Simge

Kayıt Tarihi: 25 Temmuz 2023
Durum: Aktif Değil
Puanlar: 29
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (1) Teşekkürler(1)   Alıntı Yusuf Eren Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 21 Kasım 2024 Saat 16:09
Merhaba Elif,

'https://dummyjson.com/users/10' isimli siteden JSON bilgisini almayı başarmışsınız ancak diğer sitelerden almakta sorun yaşamışsınız. Bu sorunu veri çektiğiniz sitenin URL'sinin sonunu değiştirip diğer JSON verilerini çekebilirsiniz ve bu JSON verilerini birleştirme işlemi yaptırıp tablonuzda gösterebilirsiniz. Birleştirme işlemi için JSON verisinin köşeli parantezleri kaldırılmış ve virgül eklenmiştir. Köşeli parantezi en son JSON kapatılırken eklenmiştir. İyi çalışmalar dilerim.



var 
jsonObject:TClJsonQuery;
clRest:TclRest;
mainform: TclForm;
progrid: TclProGrid;
mainvertScrollBox: TCLVertScrollBox;
sonrakiveri : Integer;

jsonMetin,ToplamJson,yeniMetin,eskikarakter1,eskikarakter2 : String;
kayitTut : TclArrayString ;

allData: TClJsonQuery;

void userCreate;
{
  clRest.Accept  = 'application/json';
  clRest.Method  = rmGet;
  clRest.BaseURl = 'https://dummyjson.com/users/' + IntToStr(sonrakiveri);
  clRest.Execute;
  
  if (allData == nil)
  {
    allData = TClJsonQuery.Create(nil);
  }
  
}


void usersgrid;
{
  jsonObject = Clomosy.ClDataSetFromJSON(clRest.Response); 
  jsonObject.OpenOrExecute;
   
    with jsonObject do
    {
     try
     
      if (Found) 
      {
        First; 
        while (not EOF)  // Loop until the end of the dataset is reached
        {
         if (jsonObject.Found)
          {
            jsonMetin = jsonObject.getJSONString;
            
            yeniMetin = clGetStringReplace(jsonMetin,'[','');
            yeniMetin = clGetStringReplace(yeniMetin,']','');            
            
            ToplamJson = ToplamJson + yeniMetin;
          }
          Next;  // Move to the next record
        }
      }
      except
      ShowMessage('[01] Exception Class: '+LastExceptionClassName+' Exception Message: '+LastExceptionMessage);
    }
    }
}

{
  mainform = TclForm.Create(self);
  ClRTSetProperty(mainform,'ClientWidth',900);
  ClRTSetProperty(mainform,'ClientHeight',750);
  
  mainvertScrollBox = mainform.AddNewVertScrollBox(mainform,'mainvertScrollBox');
  mainvertScrollBox.align=alClient;
  
  progrid = mainform.addnewprogrid(mainvertScrollBox, 'progrid');  
  
  
  
  allData = TClJsonQuery.Create(nil);  
  
  clRest = TclRest.Create;
  jsonObject = TClJsonQuery.Create(nil);
  clRest.Accept  = 'application/json';
  clRest.Method  = rmGet;
  
  ToplamJson = '[';
  
  for ( sonrakiveri=1 to 30)
  {
   
    clRest.BaseURl = 'https://dummyjson.com/users/' + IntToStr(sonrakiveri);  
    clRest.Execute;
    usersgrid;
    
    if (sonrakiveri == 30)
    {
      ToplamJson = ToplamJson + ']';
    }
    else
    {
      ToplamJson = ToplamJson + ',';
    }
  } 
    
  allData = Clomosy.ClDataSetFromJSON(ToplamJson);
    
  ProGrid.ConnectDataSet(allData);
    
  progrid.AutoSizeColumns(True,300);
  
  with progrid do
  {
    align = alClient;
    margins.right= 30;
    margins.left= 30;
    margins.bottom= 30;
    FixedLayoutFillColor = clalphacolor.clhextocolor('#3fc660');
  }

  mainform.Run;
}

Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,063 Saniyede Yüklendi.