Sayfayı Yazdır | Pencereyi Kapat

json ile veri çekme

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=962
Tarih: 04 Ocak 2025 Saat 11:34
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: json ile veri çekme
Mesajı Yazan: ElifKarabacak
Konu: json ile veri çekme
Mesaj Tarihi: 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" rel="nofollow - 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;

}




Cevaplar:
Mesajı Yazan: Yusuf Eren
Mesaj Tarihi: 21 Kasım 2024 Saat 16:09
Merhaba Elif,

' https://dummyjson.com/users/10" rel="nofollow - 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/" rel="nofollow - 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/" rel="nofollow - 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;
}




Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net